@@ -8,7 +8,7 @@ import 'package:analysis_server/src/utilities/extensions/flutter.dart';
88import 'package:analysis_server_plugin/edit/dart/correction_producer.dart' ;
99import 'package:analyzer/dart/ast/ast.dart' ;
1010import 'package:analyzer/dart/ast/visitor.dart' ;
11- import 'package:analyzer/dart/element/element .dart' ;
11+ import 'package:analyzer/dart/element/element2 .dart' ;
1212import 'package:analyzer/source/source_range.dart' ;
1313import 'package:analyzer/src/dart/ast/extensions.dart' ;
1414import 'package:analyzer_plugin/protocol/protocol_common.dart' hide Element;
@@ -43,7 +43,7 @@ class FlutterConvertToStatefulWidget extends ResolvedCorrectionProducer {
4343 }
4444
4545 // Must be a StatelessWidget subclass.
46- var widgetClassElement = widgetClass.declaredElement ! ;
46+ var widgetClassElement = widgetClass.declaredFragment ! .element ;
4747 var superType = widgetClassElement.supertype;
4848 if (superType == null || ! superType.isExactlyStatelessWidgetType) {
4949 return ;
@@ -70,29 +70,30 @@ class FlutterConvertToStatefulWidget extends ResolvedCorrectionProducer {
7070
7171 // Prepare nodes to move.
7272 var nodesToMove = < ClassMember > {};
73- var elementsToMove = < Element > {};
73+ var elementsToMove = < Element2 > {};
7474 for (var member in widgetClass.members) {
7575 if (member is FieldDeclaration && ! member.isStatic) {
7676 for (var fieldNode in member.fields.variables) {
77- var fieldElement = fieldNode.declaredElement as FieldElement ;
77+ var fieldFragment = fieldNode.declaredFragment as FieldFragment ;
78+ var fieldElement = fieldFragment.element;
7879 if (! fieldsAssignedInConstructors.contains (fieldElement)) {
7980 nodesToMove.add (member);
8081 elementsToMove.add (fieldElement);
8182
82- var getter = fieldElement.getter ;
83+ var getter = fieldElement.getter2 ;
8384 if (getter != null ) {
8485 elementsToMove.add (getter);
8586 }
8687
87- var setter = fieldElement.setter ;
88+ var setter = fieldElement.setter2 ;
8889 if (setter != null ) {
8990 elementsToMove.add (setter);
9091 }
9192 }
9293 }
9394 } else if (member is MethodDeclaration && ! member.isStatic) {
9495 nodesToMove.add (member);
95- elementsToMove.add (member.declaredElement ! );
96+ elementsToMove.add (member.declaredFragment ! .element );
9697 }
9798 }
9899
@@ -112,15 +113,15 @@ class FlutterConvertToStatefulWidget extends ResolvedCorrectionProducer {
112113 }
113114
114115 var statefulWidgetClass =
115- await sessionHelper.getFlutterClass ('StatefulWidget' );
116- var stateClass = await sessionHelper.getFlutterClass ('State' );
116+ await sessionHelper.getFlutterClass2 ('StatefulWidget' );
117+ var stateClass = await sessionHelper.getFlutterClass2 ('State' );
117118 if (statefulWidgetClass == null || stateClass == null ) {
118119 return ;
119120 }
120121
121122 await builder.addDartFileEdit (file, (builder) {
122123 builder.addReplacement (range.node (superclass), (builder) {
123- builder.writeReference (statefulWidgetClass);
124+ builder.writeReference2 (statefulWidgetClass);
124125 });
125126
126127 var replaceOffset = 0 ;
@@ -148,7 +149,7 @@ class FlutterConvertToStatefulWidget extends ResolvedCorrectionProducer {
148149 }
149150 builder.writeln (' @override' );
150151 builder.write (' ' );
151- builder.writeReference (stateClass);
152+ builder.writeReference2 (stateClass);
152153 builder.write ('<${widgetClass .name .lexeme }$typeParams >' );
153154 builder.writeln (' createState() => $stateName $typeParams ();' );
154155 if (hasEmptyLineAfterCreateState) {
@@ -205,7 +206,7 @@ class FlutterConvertToStatefulWidget extends ResolvedCorrectionProducer {
205206 builder.writeln ();
206207
207208 builder.write ('class $stateName $typeParams extends ' );
208- builder.writeReference (stateClass);
209+ builder.writeReference2 (stateClass);
209210
210211 // Write just param names (and not bounds, metadata and docs).
211212 builder.write ('<${widgetClass .name .lexeme }' );
@@ -262,13 +263,13 @@ class FlutterConvertToStatefulWidget extends ResolvedCorrectionProducer {
262263}
263264
264265class _FieldFinder extends RecursiveAstVisitor <void > {
265- Set <FieldElement > fieldsAssignedInConstructors = {};
266+ Set <FieldElement2 > fieldsAssignedInConstructors = {};
266267
267268 @override
268269 void visitFieldFormalParameter (FieldFormalParameter node) {
269- var element = node.declaredElement ;
270- if (element is FieldFormalParameterElement ) {
271- var field = element.field ;
270+ var element = node.declaredFragment ? .element ;
271+ if (element is FieldFormalParameterElement2 ) {
272+ var field = element.field2 ;
272273 if (field != null ) {
273274 fieldsAssignedInConstructors.add (field);
274275 }
@@ -280,16 +281,16 @@ class _FieldFinder extends RecursiveAstVisitor<void> {
280281 @override
281282 void visitSimpleIdentifier (SimpleIdentifier node) {
282283 if (node.parent is ConstructorFieldInitializer ) {
283- var element = node.staticElement ;
284- if (element is FieldElement ) {
284+ var element = node.element ;
285+ if (element is FieldElement2 ) {
285286 fieldsAssignedInConstructors.add (element);
286287 }
287288 }
288289 if (node.inSetterContext ()) {
289- var element = node.writeOrReadElement ;
290- if (element is PropertyAccessorElement ) {
291- var field = element.variable2 ;
292- if (field is FieldElement ) {
290+ var element = node.writeOrReadElement2 ;
291+ if (element is SetterElement ) {
292+ var field = element.variable3 ;
293+ if (field is FieldElement2 ) {
293294 fieldsAssignedInConstructors.add (field);
294295 }
295296 }
@@ -298,9 +299,9 @@ class _FieldFinder extends RecursiveAstVisitor<void> {
298299}
299300
300301class _ReplacementEditBuilder extends RecursiveAstVisitor <void > {
301- final ClassElement widgetClassElement;
302+ final ClassElement2 widgetClassElement;
302303
303- final Set <Element > elementsToMove;
304+ final Set <Element2 > elementsToMove;
304305
305306 final SourceRange linesRange;
306307
@@ -314,9 +315,9 @@ class _ReplacementEditBuilder extends RecursiveAstVisitor<void> {
314315 if (node.inDeclarationContext ()) {
315316 return ;
316317 }
317- var element = node.staticElement ;
318- if (element is ExecutableElement &&
319- element.enclosingElement3 == widgetClassElement &&
318+ var element = node.element ;
319+ if (element is ExecutableElement2 &&
320+ element.enclosingElement2 == widgetClassElement &&
320321 ! elementsToMove.contains (element)) {
321322 var offset = node.offset - linesRange.offset;
322323 var qualifier =
0 commit comments