Skip to content

Commit a33e3f2

Browse files
bwilkersonCommit Queue
authored andcommitted
Migrate extract_local
Change-Id: Ie199575d643b6de80b17cf44f61d038c0cc11525 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/397103 Commit-Queue: Brian Wilkerson <[email protected]> Reviewed-by: Konstantin Shcheglov <[email protected]>
1 parent b49464c commit a33e3f2

File tree

2 files changed

+21
-20
lines changed

2 files changed

+21
-20
lines changed

pkg/analysis_server/analyzer_use_new_elements.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ lib/src/services/flutter/widget_descriptions.dart
4949
lib/src/services/kythe/kythe_visitors.dart
5050
lib/src/services/refactoring/agnostic/change_method_signature.dart
5151
lib/src/services/refactoring/framework/formal_parameter.dart
52-
lib/src/services/refactoring/legacy/extract_local.dart
5352
lib/src/services/refactoring/legacy/extract_method.dart
5453
lib/src/services/refactoring/legacy/extract_widget.dart
5554
lib/src/services/refactoring/legacy/inline_local.dart

pkg/analysis_server/lib/src/services/refactoring/legacy/extract_local.dart

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import 'package:analyzer/dart/analysis/results.dart';
2020
import 'package:analyzer/dart/ast/ast.dart';
2121
import 'package:analyzer/dart/ast/token.dart';
2222
import 'package:analyzer/dart/ast/visitor.dart';
23-
import 'package:analyzer/dart/element/element.dart';
23+
import 'package:analyzer/dart/element/element2.dart';
2424
import 'package:analyzer/dart/element/type.dart';
2525
import 'package:analyzer/source/source_range.dart';
2626
import 'package:analyzer/src/dart/ast/utilities.dart';
@@ -55,7 +55,7 @@ class ExtractLocalRefactoringImpl extends RefactoringImpl
5555
Expression? singleExpression;
5656
String? stringLiteralPart;
5757
final List<SourceRange> occurrences = <SourceRange>[];
58-
final Map<Element, int> elementIds = <Element, int>{};
58+
final Map<Element2, int> elementIds = <Element2, int>{};
5959
Set<String> excludedVariableNames = <String>{};
6060

6161
ExtractLocalRefactoringImpl(
@@ -74,13 +74,13 @@ class ExtractLocalRefactoringImpl extends RefactoringImpl
7474

7575
String get file => resolveResult.path;
7676

77+
LibraryFragment get libraryFragment => unit.declaredFragment!;
78+
7779
@override
7880
String get refactoringName => 'Extract Local Variable';
7981

8082
CompilationUnit get unit => resolveResult.unit;
8183

82-
CompilationUnitElement get unitElement => unit.declaredElement!;
83-
8484
String get _declarationKeywordAndType {
8585
var useConst =
8686
stringLiteralPart == null &&
@@ -165,7 +165,7 @@ class ExtractLocalRefactoringImpl extends RefactoringImpl
165165
var keywordAndType = _declarationKeywordAndType;
166166
var declarationCode = '$keywordAndType $name = ';
167167
var edit = SourceEdit(singleExpression.offset, 0, declarationCode);
168-
doSourceChange_addElementEdit(change, unitElement, edit);
168+
doSourceChange_addFragmentEdit(change, libraryFragment, edit);
169169
return Future.value(change);
170170
}
171171
// prepare positions
@@ -195,7 +195,7 @@ class ExtractLocalRefactoringImpl extends RefactoringImpl
195195
if (target is Statement) {
196196
var prefix = utils.getNodePrefix(target);
197197
var edit = SourceEdit(target.offset, 0, declarationCode + eol + prefix);
198-
doSourceChange_addElementEdit(change, unitElement, edit);
198+
doSourceChange_addFragmentEdit(change, libraryFragment, edit);
199199
addPosition(edit.offset + nameOffsetInDeclarationCode);
200200
occurrencesShift = edit.replacement.length;
201201
} else if (target is ExpressionFunctionBody) {
@@ -215,11 +215,11 @@ class ExtractLocalRefactoringImpl extends RefactoringImpl
215215
code,
216216
);
217217
occurrencesShift = target.offset + code.length - expr.offset;
218-
doSourceChange_addElementEdit(change, unitElement, edit);
218+
doSourceChange_addFragmentEdit(change, libraryFragment, edit);
219219
}
220-
doSourceChange_addElementEdit(
220+
doSourceChange_addFragmentEdit(
221221
change,
222-
unitElement,
222+
libraryFragment,
223223
SourceEdit(expr.end, target.end - expr.end, ';$eol$prefix}'),
224224
);
225225
}
@@ -236,7 +236,7 @@ class ExtractLocalRefactoringImpl extends RefactoringImpl
236236
var edit = newSourceEdit_range(range, occurrenceReplacement);
237237
addPosition(range.offset + occurrencesShift);
238238
occurrencesShift += name.length - range.length;
239-
doSourceChange_addElementEdit(change, unitElement, edit);
239+
doSourceChange_addFragmentEdit(change, libraryFragment, edit);
240240
}
241241
// add the linked group
242242
change.addLinkedEditGroup(
@@ -340,8 +340,8 @@ class ExtractLocalRefactoringImpl extends RefactoringImpl
340340
// stop at void method invocations
341341
if (node is MethodInvocation) {
342342
var invocation = node;
343-
var element = invocation.methodName.staticElement;
344-
if (element is ExecutableElement && element.returnType is VoidType) {
343+
var element = invocation.methodName.element;
344+
if (element is ExecutableElement2 && element.returnType is VoidType) {
345345
if (singleExpression == null) {
346346
return RefactoringStatus.fatal(
347347
'Cannot extract the void expression.',
@@ -360,8 +360,10 @@ class ExtractLocalRefactoringImpl extends RefactoringImpl
360360
newLocation_fromNode(node),
361361
);
362362
}
363-
var element = node.staticElement;
364-
if (element is FunctionElement || element is MethodElement) {
363+
var element = node.element;
364+
if (element is LocalFunctionElement ||
365+
element is MethodElement2 ||
366+
element is TopLevelFunctionElement) {
365367
continue;
366368
}
367369
}
@@ -391,7 +393,7 @@ class ExtractLocalRefactoringImpl extends RefactoringImpl
391393

392394
/// Return an unique identifier for the given [Element], or `null` if
393395
/// [element] is `null`.
394-
int? _encodeElement(Element? element) {
396+
int? _encodeElement(Element2? element) {
395397
if (element == null) {
396398
return null;
397399
}
@@ -411,7 +413,7 @@ class ExtractLocalRefactoringImpl extends RefactoringImpl
411413
/// function we are searching occurrences in.
412414
String _encodeExpressionTokens(Expression expr, List<Token> tokens) {
413415
// prepare Token -> LocalElement map
414-
Map<Token, Element> map = HashMap<Token, Element>(
416+
Map<Token, Element2> map = HashMap<Token, Element2>(
415417
equals: (Token a, Token b) => a.lexeme == b.lexeme,
416418
hashCode: (Token t) => t.lexeme.hashCode,
417419
);
@@ -638,14 +640,14 @@ class _OccurrencesVisitor extends GeneralizingAstVisitor<void> {
638640
}
639641

640642
class _TokenLocalElementVisitor extends RecursiveAstVisitor<void> {
641-
final Map<Token, Element> map;
643+
final Map<Token, Element2> map;
642644

643645
_TokenLocalElementVisitor(this.map);
644646

645647
@override
646648
void visitSimpleIdentifier(SimpleIdentifier node) {
647-
var element = node.staticElement;
648-
if (element is LocalVariableElement) {
649+
var element = node.element;
650+
if (element is LocalVariableElement2) {
649651
map[node.token] = element;
650652
}
651653
}

0 commit comments

Comments
 (0)