| 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 0fbbaafd683afcbe55167973fa993e9be4e40eee..904ef34b50e465fe77dd34f9a14968fc4fe41fb3 100644
|
| --- a/pkg/analysis_server/lib/src/services/refactoring/inline_method.dart
|
| +++ b/pkg/analysis_server/lib/src/services/refactoring/inline_method.dart
|
| @@ -7,7 +7,6 @@ library services.src.refactoring.inline_method;
|
| import 'dart:async';
|
|
|
| import 'package:analysis_server/src/protocol_server.dart' hide Element;
|
| -import 'package:analysis_server/src/services/correction/source_range.dart';
|
| import 'package:analysis_server/src/services/correction/status.dart';
|
| import 'package:analysis_server/src/services/correction/strings.dart';
|
| import 'package:analysis_server/src/services/correction/util.dart';
|
| @@ -23,6 +22,7 @@ import 'package:analyzer/src/dart/ast/utilities.dart';
|
| import 'package:analyzer/src/dart/element/ast_provider.dart';
|
| import 'package:analyzer/src/generated/source.dart';
|
| import 'package:analyzer/src/generated/utilities_dart.dart';
|
| +import 'package:analyzer_plugin/utilities/range_factory.dart';
|
|
|
| /**
|
| * Returns the [SourceRange] to find conflicting locals in.
|
| @@ -31,14 +31,12 @@ SourceRange _getLocalsConflictingRange(AstNode node) {
|
| // maybe Block
|
| Block block = node.getAncestor((node) => node is Block);
|
| if (block != null) {
|
| - int offset = node.offset;
|
| - int endOffset = block.end;
|
| - return rangeStartEnd(offset, endOffset);
|
| + return range.startEnd(node, block);
|
| }
|
| // maybe whole executable
|
| AstNode executableNode = getEnclosingExecutableNode(node);
|
| if (executableNode != null) {
|
| - return rangeNode(executableNode);
|
| + return range.node(executableNode);
|
| }
|
| // not a part of a declaration with locals
|
| return SourceRange.EMPTY;
|
| @@ -270,7 +268,7 @@ class InlineMethodRefactoringImpl extends RefactoringImpl
|
| }
|
| // delete method
|
| if (deleteSource && inlineAll) {
|
| - SourceRange methodRange = rangeNode(_methodNode);
|
| + SourceRange methodRange = range.node(_methodNode);
|
| SourceRange linesRange =
|
| _methodUtils.getLinesRange(methodRange, skipLeadingEmptyLines: true);
|
| doSourceChange_addElementEdit(
|
| @@ -414,7 +412,7 @@ class InlineMethodRefactoringImpl extends RefactoringImpl
|
| if (_methodBody is ExpressionFunctionBody) {
|
| ExpressionFunctionBody body = _methodBody as ExpressionFunctionBody;
|
| _methodExpression = body.expression;
|
| - SourceRange methodExpressionRange = rangeNode(_methodExpression);
|
| + SourceRange methodExpressionRange = range.node(_methodExpression);
|
| _methodExpressionPart = _createSourcePart(methodExpressionRange);
|
| } else if (_methodBody is BlockFunctionBody) {
|
| Block body = (_methodBody as BlockFunctionBody).block;
|
| @@ -424,7 +422,7 @@ class InlineMethodRefactoringImpl extends RefactoringImpl
|
| // "return" statement requires special handling
|
| if (lastStatement is ReturnStatement) {
|
| _methodExpression = lastStatement.expression;
|
| - SourceRange methodExpressionRange = rangeNode(_methodExpression);
|
| + SourceRange methodExpressionRange = range.node(_methodExpression);
|
| _methodExpressionPart = _createSourcePart(methodExpressionRange);
|
| // exclude "return" statement from statements
|
| statements = statements.sublist(0, statements.length - 1);
|
| @@ -545,8 +543,8 @@ class _ReferenceProcessor {
|
| source = _refUtils.replaceSourceIndent(
|
| source, ref._methodStatementsPart._prefix, _refPrefix);
|
| // do insert
|
| - SourceRange range = rangeStartLength(_refLineRange, 0);
|
| - SourceEdit edit = newSourceEdit_range(range, source);
|
| + SourceEdit edit = newSourceEdit_range(
|
| + new SourceRange(_refLineRange.offset, 0), source);
|
| _addRefEdit(edit);
|
| }
|
| // replace invocation with return expression
|
| @@ -559,7 +557,7 @@ class _ReferenceProcessor {
|
| source = "($source)";
|
| }
|
| // do replace
|
| - SourceRange methodUsageRange = rangeNode(usage);
|
| + SourceRange methodUsageRange = range.node(usage);
|
| SourceEdit edit = newSourceEdit_range(methodUsageRange, source);
|
| _addRefEdit(edit);
|
| } else {
|
| @@ -571,7 +569,7 @@ class _ReferenceProcessor {
|
| // inline as closure invocation
|
| String source;
|
| {
|
| - source = ref._methodUtils.getRangeText(rangeStartEnd(
|
| + source = ref._methodUtils.getRangeText(range.startEnd(
|
| ref._methodParameters.leftParenthesis, ref._methodNode));
|
| String methodPrefix =
|
| ref._methodUtils.getLinePrefix(ref._methodNode.offset);
|
| @@ -579,8 +577,7 @@ class _ReferenceProcessor {
|
| source = source.trim();
|
| }
|
| // do insert
|
| - SourceRange range = rangeNode(_node);
|
| - SourceEdit edit = newSourceEdit_range(range, source);
|
| + SourceEdit edit = newSourceEdit_range(range.node(_node), source);
|
| _addRefEdit(edit);
|
| }
|
|
|
| @@ -611,7 +608,7 @@ class _ReferenceProcessor {
|
| }
|
| }
|
| if (ref._alreadyMadeAsync.add(body)) {
|
| - SourceRange bodyStart = rangeStartLength(body.offset, 0);
|
| + SourceRange bodyStart = range.startLength(body, 0);
|
| _addRefEdit(newSourceEdit_range(bodyStart, 'async '));
|
| }
|
| }
|
| @@ -662,7 +659,7 @@ class _ReferenceProcessor {
|
| // not invocation, just reference to function
|
| String source;
|
| {
|
| - source = ref._methodUtils.getRangeText(rangeStartEnd(
|
| + source = ref._methodUtils.getRangeText(range.startEnd(
|
| ref._methodParameters.leftParenthesis, ref._methodNode));
|
| String methodPrefix =
|
| ref._methodUtils.getLinePrefix(ref._methodNode.offset);
|
| @@ -672,15 +669,14 @@ class _ReferenceProcessor {
|
| source = removeEnd(source, ';');
|
| }
|
| // do insert
|
| - SourceRange range = rangeNode(_node);
|
| - SourceEdit edit = newSourceEdit_range(range, source);
|
| + SourceEdit edit = newSourceEdit_range(range.node(_node), source);
|
| _addRefEdit(edit);
|
| }
|
| }
|
|
|
| bool _shouldProcess() {
|
| if (!ref.inlineAll) {
|
| - SourceRange parentRange = rangeNode(_node);
|
| + SourceRange parentRange = range.node(_node);
|
| return parentRange.contains(ref.offset);
|
| }
|
| return true;
|
| @@ -766,26 +762,26 @@ class _SourcePart {
|
| }
|
|
|
| void addParameterOccurrence(
|
| - ParameterElement parameter, SourceRange range, int precedence) {
|
| + ParameterElement parameter, SourceRange identifierRange, int precedence) {
|
| if (parameter != null) {
|
| List<_ParameterOccurrence> occurrences = _parameters[parameter];
|
| if (occurrences == null) {
|
| occurrences = [];
|
| _parameters[parameter] = occurrences;
|
| }
|
| - range = rangeFromBase(range, _base);
|
| - occurrences.add(new _ParameterOccurrence(precedence, range));
|
| + identifierRange = range.offsetBy(identifierRange, -_base);
|
| + occurrences.add(new _ParameterOccurrence(precedence, identifierRange));
|
| }
|
| }
|
|
|
| - void addVariable(VariableElement element, SourceRange range) {
|
| + void addVariable(VariableElement element, SourceRange identifierRange) {
|
| List<SourceRange> ranges = _variables[element];
|
| if (ranges == null) {
|
| ranges = [];
|
| _variables[element] = ranges;
|
| }
|
| - range = rangeFromBase(range, _base);
|
| - ranges.add(range);
|
| + identifierRange = range.offsetBy(identifierRange, -_base);
|
| + ranges.add(identifierRange);
|
| }
|
| }
|
|
|
| @@ -814,7 +810,7 @@ class _VariablesVisitor extends GeneralizingAstVisitor {
|
|
|
| @override
|
| visitNode(AstNode node) {
|
| - SourceRange nodeRange = rangeNode(node);
|
| + SourceRange nodeRange = range.node(node);
|
| if (!bodyRange.intersects(nodeRange)) {
|
| return null;
|
| }
|
| @@ -823,7 +819,7 @@ class _VariablesVisitor extends GeneralizingAstVisitor {
|
|
|
| @override
|
| visitSimpleIdentifier(SimpleIdentifier node) {
|
| - SourceRange nodeRange = rangeNode(node);
|
| + SourceRange nodeRange = range.node(node);
|
| if (bodyRange.covers(nodeRange)) {
|
| _addMemberQualifier(node);
|
| _addParameter(node);
|
| @@ -875,7 +871,7 @@ class _VariablesVisitor extends GeneralizingAstVisitor {
|
| return;
|
| }
|
| // OK, add occurrence
|
| - SourceRange nodeRange = rangeNode(node);
|
| + SourceRange nodeRange = range.node(node);
|
| int parentPrecedence = getExpressionParentPrecedence(node);
|
| result.addParameterOccurrence(
|
| parameterElement, nodeRange, parentPrecedence);
|
| @@ -884,7 +880,7 @@ class _VariablesVisitor extends GeneralizingAstVisitor {
|
| void _addVariable(SimpleIdentifier node) {
|
| VariableElement variableElement = getLocalVariableElement(node);
|
| if (variableElement != null) {
|
| - SourceRange nodeRange = rangeNode(node);
|
| + SourceRange nodeRange = range.node(node);
|
| result.addVariable(variableElement, nodeRange);
|
| }
|
| }
|
|
|