Elements. Make ElementDirective abstract, not sealed.

This allows to have `ElementDirectiveImpl` internally.

Presubmit in google3 is green: cl/752778004

Change-Id: Ia56ad45fab8d95aa5a089aae338414a7f5c4d549
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/425340
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This commit is contained in:
Konstantin Shcheglov
2025-05-01 12:21:50 -07:00
parent 4f3a672b00
commit c644933a82
3 changed files with 6 additions and 2 deletions
+3
View File
@@ -9,6 +9,9 @@
* Deprecate `AnalysisError.correction` field; use
`AnalysisError.correctionMessage` instead.
* Deprecate `ErrorType`; use `DiagnosticType` instead.
* Change `ElementDirective` from `sealed` to `abstract`.
This allows the analyzer to have an internal implementation
class corresponding to `ElementDirective`.
## 7.4.1
* Restore `InstanceElement.augmented` getter.
+2 -1
View File
@@ -3115,7 +3115,8 @@ package:analyzer/dart/element/element.dart:
isWidgetFactory (getter: bool)
computeConstantValue (method: DartObject? Function())
toSource (method: String Function())
ElementDirective (class extends Object implements Annotatable, sealed (immediate subtypes: LibraryExport, LibraryImport, PartInclude)):
ElementDirective (class extends Object implements Annotatable):
new (constructor: ElementDirective Function())
libraryFragment (getter: LibraryFragment)
uri (getter: DirectiveUri)
ElementKind (class extends Object implements Comparable<ElementKind>):
+1 -1
View File
@@ -845,7 +845,7 @@ abstract class ElementAnnotation implements ConstantEvaluationTarget {
/// A directive within a library fragment.
///
/// Clients may not extend, implement or mix-in this class.
sealed class ElementDirective implements Annotatable {
abstract class ElementDirective implements Annotatable {
/// The library fragment that contains this object.
LibraryFragment get libraryFragment;