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' ;
@@ -175,61 +174,6 @@ extension Element2Extension on Element2 {
175174 }
176175}
177176
178- extension Element2OrNullExtension on Element2 ? {
179- @Deprecated ('Use Element2 instead' )
180- Element ? get asElement {
181- var self = this ;
182- switch (self) {
183- case null :
184- return null ;
185- case BindPatternVariableElementImpl2 element2:
186- return element2.asElement;
187- case ConstructorElementImpl2 element2:
188- return element2.asElement;
189- case DynamicElementImpl2 ():
190- return self.firstFragment;
191- case ExtensionElementImpl2 element2:
192- return element2.asElement;
193- case FieldElementImpl2 element2:
194- return element2.asElement;
195- case FieldMember ():
196- return self.declaration as Element ;
197- case FormalParameterElement element2:
198- return element2.asElement;
199- case GetterElementImpl element2:
200- return element2.asElement;
201- case LabelElementImpl2 element2:
202- return element2.asElement;
203- case LibraryElementImpl ():
204- return self as Element ;
205- case LibraryImportElementImpl ():
206- return self as Element ;
207- case LocalFunctionElementImpl element2:
208- return element2.asElement;
209- case LocalVariableElementImpl2 ():
210- return self.wrappedElement as Element ;
211- case MethodElementImpl2 element2:
212- return element2.asElement;
213- case NeverElementImpl2 ():
214- return NeverElementImpl .instance;
215- case PrefixElement2 element2:
216- return element2.asElement;
217- case SetterElementImpl element2:
218- return element2.asElement;
219- case TopLevelFunctionElementImpl element2:
220- return element2.asElement;
221- case TopLevelVariableElementImpl2 element2:
222- return element2.asElement;
223- case TypeDefiningElement2 ():
224- return self.firstFragment as Element ;
225- case MockLibraryImportElement ():
226- return self.import;
227- default :
228- throw UnsupportedError ('Unsupported type: $runtimeType ' );
229- }
230- }
231- }
232-
233177extension ElementImplExtension on ElementImpl {
234178 ElementImpl ? get enclosingElementImpl => enclosingElement3;
235179
@@ -238,8 +182,7 @@ extension ElementImplExtension on ElementImpl {
238182 }
239183}
240184
241- @Deprecated ('Use Element2 instead' )
242- extension ElementOrNullExtension on Element ? {
185+ extension ElementOrNullExtension on ElementImpl ? {
243186 Element2 ? get asElement2 {
244187 var self = this ;
245188 if (self == null ) {
@@ -255,12 +198,7 @@ extension ElementOrNullExtension on Element? {
255198 } else if (self is FieldElementImpl ) {
256199 return (self as FieldFragment ).element;
257200 } else if (self is FunctionElementImpl ) {
258- if (self.enclosingElement3 is ! CompilationUnitElementImpl ) {
259- // TODO(scheglov): update `FunctionElementImpl.element` return type?
260- return self.element;
261- } else {
262- return (self as Fragment ).element;
263- }
201+ return (self as Fragment ).element;
264202 } else if (self is InterfaceElementImpl ) {
265203 return self.element;
266204 } else if (self is LabelElementImpl ) {
@@ -272,7 +210,7 @@ extension ElementOrNullExtension on Element? {
272210 } else if (self is NeverElementImpl ) {
273211 return NeverElementImpl2 .instance;
274212 } else if (self is ParameterMember ) {
275- return self;
213+ return ( self as FormalParameterFragment ).element ;
276214 } else if (self is LibraryImportElementImpl ||
277215 self is LibraryExportElementImpl ||
278216 self is PartElementImpl ) {
0 commit comments