| Index: pkg/analysis_server/lib/src/services/refactoring/inline_method.dart
|
| diff --git a/pkg/analysis_server/lib/src/services/refactoring/inline_method.dart b/pkg/analysis_server/lib/src/services/refactoring/inline_method.dart
|
| index 3b3c786abc9ec89cd13571f00ca36916d7d34808..4b6140cbb1620a7781bb7351037ecaf0969c05e8 100644
|
| --- a/pkg/analysis_server/lib/src/services/refactoring/inline_method.dart
|
| +++ b/pkg/analysis_server/lib/src/services/refactoring/inline_method.dart
|
| @@ -102,7 +102,7 @@ String _getMethodSourceForInvocation(
|
| }
|
| });
|
| // replace static field "qualifier" with invocation target
|
| - part._staticFieldOffsets.forEach((String className, List<int> offsets) {
|
| + part._implicitClassNameOffsets.forEach((String className, List<int> offsets) {
|
| for (int offset in offsets) {
|
| // edits.add(newSourceEdit_range(range, className + '.'));
|
| edits.add(new SourceEdit(offset, 0, className + '.'));
|
| @@ -682,9 +682,9 @@ class _SourcePart {
|
| final List<int> _implicitThisOffsets = [];
|
|
|
| /**
|
| - * The offsets of the implicit class references in static field references.
|
| + * The offsets of the implicit class references in static member references.
|
| */
|
| - final Map<String, List<int>> _staticFieldOffsets = {};
|
| + final Map<String, List<int>> _implicitClassNameOffsets = {};
|
|
|
| _SourcePart(this._base, this._source, this._prefix);
|
|
|
| @@ -692,6 +692,15 @@ class _SourcePart {
|
| _explicitThisOffsets.add(offset - _base);
|
| }
|
|
|
| + void addImplicitClassNameOffset(String className, int offset) {
|
| + List<int> offsets = _implicitClassNameOffsets[className];
|
| + if (offsets == null) {
|
| + offsets = [];
|
| + _implicitClassNameOffsets[className] = offsets;
|
| + }
|
| + offsets.add(offset - _base);
|
| + }
|
| +
|
| void addImplicitThisOffset(int offset) {
|
| _implicitThisOffsets.add(offset - _base);
|
| }
|
| @@ -709,15 +718,6 @@ class _SourcePart {
|
| }
|
| }
|
|
|
| - void addStaticFieldOffset(String className, int offset) {
|
| - List<int> offsets = _staticFieldOffsets[className];
|
| - if (offsets == null) {
|
| - offsets = [];
|
| - _staticFieldOffsets[className] = offsets;
|
| - }
|
| - offsets.add(offset - _base);
|
| - }
|
| -
|
| void addVariable(VariableElement element, SourceRange range) {
|
| List<SourceRange> ranges = _variables[element];
|
| if (ranges == null) {
|
| @@ -765,7 +765,7 @@ class _VariablesVisitor extends GeneralizingAstVisitor {
|
| visitSimpleIdentifier(SimpleIdentifier node) {
|
| SourceRange nodeRange = rangeNode(node);
|
| if (bodyRange.covers(nodeRange)) {
|
| - _addInstanceFieldQualifier(node);
|
| + _addMemberQualifier(node);
|
| _addParameter(node);
|
| _addVariable(node);
|
| }
|
| @@ -779,19 +779,28 @@ class _VariablesVisitor extends GeneralizingAstVisitor {
|
| }
|
| }
|
|
|
| - void _addInstanceFieldQualifier(SimpleIdentifier node) {
|
| - PropertyAccessorElement accessor = getPropertyAccessorElement(node);
|
| - if (isFieldAccessorElement(accessor)) {
|
| - AstNode qualifier = getNodeQualifier(node);
|
| - if (qualifier == null) {
|
| - int offset = node.offset;
|
| - if (accessor.isStatic) {
|
| - String className = accessor.enclosingElement.displayName;
|
| - result.addStaticFieldOffset(className, offset);
|
| - } else {
|
| - result.addImplicitThisOffset(offset);
|
| - }
|
| - }
|
| + void _addMemberQualifier(SimpleIdentifier node) {
|
| + // should be unqualified
|
| + AstNode qualifier = getNodeQualifier(node);
|
| + if (qualifier != null) {
|
| + return;
|
| + }
|
| + // should be a method or field reference
|
| + Element element = node.staticElement;
|
| + if (!(element is MethodElement || element is PropertyAccessorElement)) {
|
| + return;
|
| + }
|
| + if (element.enclosingElement is! ClassElement) {
|
| + return;
|
| + }
|
| + // record the implicit static or instance reference
|
| + ExecutableElement member = element;
|
| + int offset = node.offset;
|
| + if (member.isStatic) {
|
| + String className = member.enclosingElement.displayName;
|
| + result.addImplicitClassNameOffset(className, offset);
|
| + } else {
|
| + result.addImplicitThisOffset(offset);
|
| }
|
| }
|
|
|
|
|