Elements. Deprecate Element.declaration/nonSynthetic.
Change-Id: I72074b7bb0237ce2d5b2abf21bf65d76481157f8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/418926
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
diff --git a/pkg/analyzer/api.txt b/pkg/analyzer/api.txt
index d1ae6d3..2b5b466 100644
--- a/pkg/analyzer/api.txt
+++ b/pkg/analyzer/api.txt
@@ -3099,7 +3099,7 @@
new (constructor: Element Function())
children (getter: List<Element>, deprecated)
context (getter: AnalysisContext@2)
- declaration (getter: Element?)
+ declaration (getter: Element?, deprecated)
displayName (getter: String)
documentationComment (getter: String?)
enclosingElement3 (getter: Element?, deprecated)
@@ -3141,7 +3141,7 @@
name (getter: String?)
nameLength (getter: int)
nameOffset (getter: int)
- nonSynthetic (getter: Element)
+ nonSynthetic (getter: Element, deprecated)
session (getter: AnalysisSession?)
sinceSdkVersion (getter: Version?)
source (getter: Source?)
@@ -3540,7 +3540,7 @@
computeConstantValue (method: DartObject? Function())
_ExistingElement (class extends Object implements Element):
new (constructor: _ExistingElement Function())
- declaration (getter: Element)
+ declaration (getter: Element, deprecated)
library (getter: LibraryElement, deprecated)
librarySource (getter: Source)
source (getter: Source)
diff --git a/pkg/analyzer/lib/dart/element/element.dart b/pkg/analyzer/lib/dart/element/element.dart
index 7b9b8b7..482a7b3 100644
--- a/pkg/analyzer/lib/dart/element/element.dart
+++ b/pkg/analyzer/lib/dart/element/element.dart
@@ -429,6 +429,7 @@
/// from the class, without any substitutions. If this element is already a
/// declaration (or a synthetic element, e.g. a synthetic property accessor),
/// return itself.
+ @Deprecated(elementModelDeprecationMsg)
Element? get declaration;
/// The display name of this element, possibly the empty string if the
@@ -603,6 +604,7 @@
/// element is returned. For example, for a synthetic getter of a
/// non-synthetic field the field is returned; for a synthetic constructor
/// the enclosing class is returned.
+ @Deprecated(elementModelDeprecationMsg)
Element get nonSynthetic;
/// The analysis session in which this element is defined.
@@ -2386,6 +2388,7 @@
@AnalyzerPublicApi(
message: 'Exposed because it is implemented by various elements')
abstract class _ExistingElement implements Element {
+ @Deprecated(elementModelDeprecationMsg)
@override
Element get declaration;