From 073df7a4fd2da0841fb20fc1d040339db773b832 Mon Sep 17 00:00:00 2001 From: Konstantin Shcheglov Date: Mon, 31 Mar 2025 15:04:59 -0700 Subject: [PATCH] Elements. Deprecate EnumElement. Change-Id: I21b51cf2a0eff465dc9725a9477656b7ba2228ff Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/418828 Commit-Queue: Konstantin Shcheglov Reviewed-by: Paul Berry --- pkg/analyzer/api.txt | 2 +- pkg/analyzer/lib/dart/element/element.dart | 1 + pkg/analyzer/lib/src/dart/element/element.dart | 7 ++++++- .../lib/src/utilities/extensions/element.dart | 12 ------------ 4 files changed, 8 insertions(+), 14 deletions(-) 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;