22// for details. All rights reserved. Use of this source code is governed by a
33// BSD-style license that can be found in the LICENSE file.
44
5- import 'package:analyzer/dart/element/element.dart' ;
65import 'package:analyzer/dart/element/element2.dart' ;
76import 'package:analyzer/dart/element/nullability_suffix.dart' ;
87import 'package:analyzer/dart/element/type.dart' ;
@@ -33,13 +32,13 @@ final Uri _uriFramework = Uri.parse(
3332
3433_Flutter get _flutter => _flutterInstance;
3534
36- bool hasWidgetAsAscendant (ClassElement element) =>
35+ bool hasWidgetAsAscendant (ClassElement2 element) =>
3736 _flutter.hasWidgetAsAscendant (element);
3837
3938bool isBuildContext (DartType ? type, {bool skipNullable = false }) =>
4039 _flutter.isBuildContext (type, skipNullable: skipNullable);
4140
42- bool isExactWidget (ClassElement element) => _flutter.isExactWidget (element);
41+ bool isExactWidget (ClassElement2 element) => _flutter.isExactWidget (element);
4342
4443bool isExactWidgetTypeContainer (DartType ? type) =>
4544 _flutter.isExactWidgetTypeContainer (type);
@@ -49,9 +48,7 @@ bool isExactWidgetTypeSizedBox(DartType? type) =>
4948
5049bool isKDebugMode (Element2 ? element) => _flutter.isKDebugMode (element);
5150
52- bool isState (InterfaceElement element) => _flutter.isState (element);
53-
54- bool isState2 (InterfaceElement2 element) => _flutter.isState2 (element);
51+ bool isState (InterfaceElement2 element) => _flutter.isState (element);
5552
5653bool isStatefulWidget (ClassElement2 ? element) =>
5754 element != null && _flutter.isStatefulWidget (element);
@@ -62,7 +59,7 @@ bool isWidgetProperty(DartType? type) {
6259 }
6360 if (type is InterfaceType &&
6461 type.implementsAnyInterface (_collectionInterfaces)) {
65- return type.element.typeParameters .length == 1 &&
62+ return type.element3.typeParameters2 .length == 1 &&
6663 isWidgetProperty (type.typeArguments.first);
6764 }
6865 return false ;
@@ -90,18 +87,19 @@ class _Flutter {
9087 _uriFramework = Uri .parse ('$uriPrefix /src/widgets/framework.dart' ),
9188 _uriFoundation = Uri .parse ('$uriPrefix /src/foundation/constants.dart' );
9289
93- bool hasWidgetAsAscendant (InterfaceElement ? element,
94- [Set <InterfaceElement >? alreadySeen]) {
90+ bool hasWidgetAsAscendant (InterfaceElement2 ? element,
91+ [Set <InterfaceElement2 >? alreadySeen]) {
9592 if (element == null ) return false ;
9693
9794 if (isExactly (element, _nameWidget, _uriFramework)) return true ;
9895
9996 alreadySeen ?? = {};
10097 if (! alreadySeen.add (element)) return false ;
10198
102- var type =
103- element.isAugmentation ? element.augmented .thisType : element.supertype;
104- return hasWidgetAsAscendant (type? .element, alreadySeen);
99+ var type = element.firstFragment.isAugmentation
100+ ? element.thisType
101+ : element.supertype;
102+ return hasWidgetAsAscendant (type? .element3, alreadySeen);
105103 }
106104
107105 bool isBuildContext (DartType ? type, {bool skipNullable = false }) {
@@ -111,58 +109,45 @@ class _Flutter {
111109 if (skipNullable && type.nullabilitySuffix == NullabilitySuffix .question) {
112110 return false ;
113111 }
114- return isExactly (type.element , _nameBuildContext, _uriFramework);
112+ return isExactly (type.element3 , _nameBuildContext, _uriFramework);
115113 }
116114
117115 /// Whether [element] is exactly the element named [type] , from Flutter.
118- bool isExactly (InterfaceElement element, String type, Uri uri) =>
119- element.name == type && element.source.uri == uri;
120-
121- /// Whether [element] is exactly the element named [type] , from Flutter.
122- bool isExactly2 (InterfaceElement2 element, String type, Uri uri) =>
123- element.name3 == type &&
124- element.firstFragment.libraryFragment.source.uri == uri;
116+ bool isExactly (InterfaceElement2 element, String type, Uri uri) =>
117+ element.name3 == type && element.library2.firstFragment.source.uri == uri;
125118
126- bool isExactWidget (ClassElement element) =>
119+ bool isExactWidget (ClassElement2 element) =>
127120 isExactly (element, _nameWidget, _uriFramework);
128121
129- bool isExactWidget2 (ClassElement2 element) =>
130- isExactly2 (element, _nameWidget, _uriFramework);
131-
132122 bool isExactWidgetTypeContainer (DartType ? type) =>
133123 type is InterfaceType &&
134- isExactly (type.element , _nameContainer, _uriContainer);
124+ isExactly (type.element3 , _nameContainer, _uriContainer);
135125
136126 bool isExactWidgetTypeSizedBox (DartType ? type) =>
137127 type is InterfaceType &&
138- isExactly (type.element , _nameSizedBox, _uriBasic);
128+ isExactly (type.element3 , _nameSizedBox, _uriBasic);
139129
140130 bool isKDebugMode (Element2 ? element) =>
141131 element != null &&
142132 element.name3 == 'kDebugMode' &&
143133 element.library2? .uri == _uriFoundation;
144134
145- bool isState (InterfaceElement element) =>
135+ bool isState (InterfaceElement2 element) =>
146136 isExactly (element, _nameState, _uriFramework) ||
147137 element.allSupertypes
148- .any ((type) => isExactly (type.element, _nameState, _uriFramework));
149-
150- bool isState2 (InterfaceElement2 element) =>
151- isExactly2 (element, _nameState, _uriFramework) ||
152- element.allSupertypes
153- .any ((type) => isExactly2 (type.element3, _nameState, _uriFramework));
138+ .any ((type) => isExactly (type.element3, _nameState, _uriFramework));
154139
155140 bool isStatefulWidget (ClassElement2 element) =>
156- isExactly2 (element, _nameStatefulWidget, _uriFramework) ||
141+ isExactly (element, _nameStatefulWidget, _uriFramework) ||
157142 element.allSupertypes.any ((type) =>
158- isExactly (type.element , _nameStatefulWidget, _uriFramework));
143+ isExactly (type.element3 , _nameStatefulWidget, _uriFramework));
159144
160145 bool isWidget (InterfaceElement2 element) {
161- if (isExactly2 (element, _nameWidget, _uriFramework)) {
146+ if (isExactly (element, _nameWidget, _uriFramework)) {
162147 return true ;
163148 }
164149 for (var type in element.allSupertypes) {
165- if (isExactly2 (type.element3, _nameWidget, _uriFramework)) {
150+ if (isExactly (type.element3, _nameWidget, _uriFramework)) {
166151 return true ;
167152 }
168153 }
0 commit comments