diff --git a/pkg/analyzer/api.txt b/pkg/analyzer/api.txt index a01d527ffbd..803c4defe30 100644 --- a/pkg/analyzer/api.txt +++ b/pkg/analyzer/api.txt @@ -3266,7 +3266,7 @@ package:analyzer/dart/element/element.dart: visitTopLevelVariableElement (method: R? Function(TopLevelVariableElement)) visitTypeAliasElement (method: R? Function(TypeAliasElement)) visitTypeParameterElement (method: R? Function(TypeParameterElement)) - EnumElement (class extends Object implements InterfaceElement): + EnumElement (class extends Object implements InterfaceElement, deprecated): new (constructor: EnumElement Function()) ExecutableElement (class extends Object implements FunctionTypedElement): new (constructor: ExecutableElement Function()) diff --git a/pkg/analyzer/lib/dart/element/element.dart b/pkg/analyzer/lib/dart/element/element.dart index 6f9287d8736..d87b78d430a 100644 --- a/pkg/analyzer/lib/dart/element/element.dart +++ b/pkg/analyzer/lib/dart/element/element.dart @@ -1089,6 +1089,7 @@ abstract class ElementVisitor { /// An element that represents an enum. /// /// Clients may not extend, implement or mix-in this class. +@Deprecated('Use EnumElement2 instead') abstract class EnumElement implements InterfaceElement {} /// An element representing an executable object, including functions, methods, diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart index 1cf6f522335..140627fac84 100644 --- a/pkg/analyzer/lib/src/dart/element/element.dart +++ b/pkg/analyzer/lib/src/dart/element/element.dart @@ -1186,6 +1186,7 @@ class CompilationUnitElementImpl extends UriReferencedElementImpl return null; } + @Deprecated(elementModelDeprecationMsg) @override EnumElement? getEnum(String name) { for (var element in enums) { @@ -3513,7 +3514,10 @@ abstract class ElementOrMember {} /// An [InterfaceElementImpl] which is an enum. class EnumElementImpl extends InterfaceElementImpl - implements EnumElement, EnumFragment { + implements + // ignore:deprecated_member_use_from_same_package + EnumElement, + EnumFragment { late EnumElementImpl2 augmentedInternal; /// Initialize a newly created class element to have the given [name] at the @@ -7334,6 +7338,7 @@ class LibraryElementImpl extends ElementImpl return _getElementByName(classes, name); } + @Deprecated(elementModelDeprecationMsg) EnumElement? getEnum(String name) { for (var unitElement in units) { var element = unitElement.getEnum(name); diff --git a/pkg/analyzer/lib/src/utilities/extensions/element.dart b/pkg/analyzer/lib/src/utilities/extensions/element.dart index 2aecc519f90..29813b14d8a 100644 --- a/pkg/analyzer/lib/src/utilities/extensions/element.dart +++ b/pkg/analyzer/lib/src/utilities/extensions/element.dart @@ -308,18 +308,6 @@ extension ElementOrNullExtension on Element? { } } -extension EnumElement2Extension on EnumElement2 { - EnumElement get asElement { - return firstFragment as EnumElement; - } -} - -extension EnumElementExtension on EnumElement { - EnumElement2 get asElement2 { - return (this as EnumElementImpl).element; - } -} - extension EnumElementImplExtension on EnumElementImpl { EnumElementImpl2 get asElement2 { return element;