@@ -20,7 +20,7 @@ import 'package:analyzer/dart/analysis/results.dart';
2020import 'package:analyzer/dart/ast/ast.dart' ;
2121import 'package:analyzer/dart/ast/token.dart' ;
2222import 'package:analyzer/dart/ast/visitor.dart' ;
23- import 'package:analyzer/dart/element/element .dart' ;
23+ import 'package:analyzer/dart/element/element2 .dart' ;
2424import 'package:analyzer/dart/element/type.dart' ;
2525import 'package:analyzer/source/source_range.dart' ;
2626import '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
640642class _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