Elements. Deprecate TypeDefiningElement and TypeDefiningFragment.

Change-Id: Ic418980c83146669678d5c6d61db05d84ba86652
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/452903
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This commit is contained in:
Konstantin Shcheglov
2025-10-02 12:29:30 -07:00
committed by Commit Queue
parent ebd506baec
commit 892ba9c158
8 changed files with 54 additions and 28 deletions
+2 -2
View File
@@ -11,8 +11,8 @@ resolution: workspace
dependencies:
# See the release policy for managing this dependency at
# pkg/analyzer/doc/implementation/releasing.md.
analyzer: 8.2.0
analyzer_plugin: 0.13.8
analyzer: 8.3.0-dev
analyzer_plugin: 0.13.9-dev
meta: ^1.16.0
yaml: ^3.1.0
yaml_edit: ^2.2.0
+4
View File
@@ -1,3 +1,7 @@
## 8.3.0-dev
* Deprecate `TypeDefiningElement`, check for specific elements.
* Deprecate `TypeDefiningFragment`, check for specific fragments.
## 8.2.0
* Updated SDK constraint to `^3.9.0`.
* Deprecate `Diagnostic.data`. Instead, please use an expando to attach data to
+2 -2
View File
@@ -4172,11 +4172,11 @@ package:analyzer/dart/element/element.dart:
enclosingFragment (getter: LibraryFragment?)
nextFragment (getter: Null)
previousFragment (getter: Null)
TypeDefiningElement (class extends Object implements Element, Annotatable):
TypeDefiningElement (class extends Object implements Element, Annotatable, deprecated):
new (constructor: TypeDefiningElement Function())
firstFragment (getter: TypeDefiningFragment)
fragments (getter: List<TypeDefiningFragment>)
TypeDefiningFragment (class extends Object implements Fragment, Annotatable):
TypeDefiningFragment (class extends Object implements Fragment, Annotatable, deprecated):
new (constructor: TypeDefiningFragment Function())
element (getter: TypeDefiningElement)
nextFragment (getter: TypeDefiningFragment?)
+26 -16
View File
@@ -2055,7 +2055,9 @@ abstract class HideElementCombinator implements NamespaceCombinator {
///
/// Clients may not extend, implement or mix-in this class.
abstract class InstanceElement
implements TypeDefiningElement, TypeParameterizedElement {
implements
TypeDefiningElement, // ignore:deprecated_member_use_from_same_package
TypeParameterizedElement {
@override
InstanceElement get baseElement;
@@ -2205,7 +2207,9 @@ abstract class InstanceElement
///
/// Clients may not extend, implement or mix-in this class.
abstract class InstanceFragment
implements TypeDefiningFragment, TypeParameterizedFragment {
implements
TypeDefiningFragment, // ignore:deprecated_member_use_from_same_package
TypeParameterizedFragment {
@override
InstanceElement get element;
@@ -3890,7 +3894,10 @@ abstract class TopLevelVariableFragment implements PropertyInducingFragment {
///
/// Clients may not extend, implement or mix-in this class.
abstract class TypeAliasElement
implements TypeParameterizedElement, TypeDefiningElement {
implements
TypeParameterizedElement,
TypeDefiningElement // ignore:deprecated_member_use_from_same_package
{
/// If the aliased type has structure, return the corresponding element.
/// For example, it could be [GenericFunctionTypeElement].
///
@@ -3944,7 +3951,10 @@ abstract class TypeAliasElement
///
/// Clients may not extend, implement or mix-in this class.
abstract class TypeAliasFragment
implements TypeParameterizedFragment, TypeDefiningFragment {
implements
TypeParameterizedFragment,
TypeDefiningFragment // ignore:deprecated_member_use_from_same_package
{
@override
TypeAliasElement get element;
@@ -3961,11 +3971,8 @@ abstract class TypeAliasFragment
/// An element that defines a type.
///
/// Clients may not extend, implement or mix-in this class.
abstract class TypeDefiningElement
implements
Element,
Annotatable // ignore:deprecated_member_use_from_same_package
{
@Deprecated('Check for specific elements instead')
abstract class TypeDefiningElement implements Element, Annotatable {
// TODO(brianwilkerson): Evaluate to see whether this type is actually needed
// after converting clients to the new API.
@@ -3979,11 +3986,8 @@ abstract class TypeDefiningElement
/// The portion of a [TypeDefiningElement] contributed by a single declaration.
///
/// Clients may not extend, implement or mix-in this class.
abstract class TypeDefiningFragment
implements
Fragment,
Annotatable // ignore:deprecated_member_use_from_same_package
{
@Deprecated('Check for specific fragments instead')
abstract class TypeDefiningFragment implements Fragment, Annotatable {
@override
TypeDefiningElement get element;
@@ -4004,7 +4008,10 @@ abstract class TypeDefiningFragment
/// A type parameter.
///
/// Clients may not extend, implement or mix-in this class.
abstract class TypeParameterElement implements TypeDefiningElement {
abstract class TypeParameterElement
implements
TypeDefiningElement // ignore:deprecated_member_use_from_same_package
{
@override
TypeParameterElement get baseElement;
@@ -4030,7 +4037,10 @@ abstract class TypeParameterElement implements TypeDefiningElement {
/// declaration.
///
/// Clients may not extend, implement or mix-in this class.
abstract class TypeParameterFragment implements TypeDefiningFragment {
abstract class TypeParameterFragment
implements
TypeDefiningFragment // ignore:deprecated_member_use_from_same_package
{
@override
TypeParameterElement get element;
+16 -4
View File
@@ -1133,7 +1133,10 @@ class DirectiveUriWithUnitImpl extends DirectiveUriWithRelativeUriImpl
}
/// The synthetic element representing the declaration of the type `dynamic`.
class DynamicElementImpl extends ElementImpl implements TypeDefiningElement {
class DynamicElementImpl extends ElementImpl
implements
TypeDefiningElement // ignore:deprecated_member_use_from_same_package
{
/// The unique instance of this class.
static final DynamicElementImpl instance = DynamicElementImpl._();
@@ -1210,7 +1213,10 @@ class DynamicElementImpl extends ElementImpl implements TypeDefiningElement {
}
/// The synthetic element representing the declaration of the type `dynamic`.
class DynamicFragmentImpl extends FragmentImpl implements TypeDefiningFragment {
class DynamicFragmentImpl extends FragmentImpl
implements
TypeDefiningFragment // ignore:deprecated_member_use_from_same_package
{
/// The unique instance of this class.
static final DynamicFragmentImpl instance = DynamicFragmentImpl._();
@@ -8943,7 +8949,10 @@ class MultiplyDefinedFragmentImpl extends FragmentImpl
}
/// The synthetic element representing the declaration of the type `Never`.
class NeverElementImpl extends ElementImpl implements TypeDefiningElement {
class NeverElementImpl extends ElementImpl
implements
TypeDefiningElement // ignore:deprecated_member_use_from_same_package
{
/// The unique instance of this class.
static final instance = NeverElementImpl._();
@@ -9027,7 +9036,10 @@ class NeverElementImpl extends ElementImpl implements TypeDefiningElement {
}
/// The synthetic element representing the declaration of the type `Never`.
class NeverFragmentImpl extends FragmentImpl implements TypeDefiningFragment {
class NeverFragmentImpl extends FragmentImpl
implements
TypeDefiningFragment // ignore:deprecated_member_use_from_same_package
{
/// The unique instance of this class.
static final instance = NeverFragmentImpl._();
+1 -1
View File
@@ -1,5 +1,5 @@
name: analyzer
version: 8.2.0
version: 8.3.0-dev
description: >-
This package provides a library that performs static analysis of Dart code.
repository: https://github.com/dart-lang/sdk/tree/main/pkg/analyzer
+2 -2
View File
@@ -1,6 +1,6 @@
name: analyzer_plugin
description: A framework and support code for building plugins for the analysis server.
version: 0.13.8
version: 0.13.9-dev
repository: https://github.com/dart-lang/sdk/tree/main/pkg/analyzer_plugin
environment:
@@ -11,7 +11,7 @@ resolution: workspace
dependencies:
# See the release policy for managing this dependency at
# pkg/analyzer/doc/implementation/releasing.md.
analyzer: 8.2.0
analyzer: 8.3.0-dev
collection: ^1.15.0
dart_style: ^3.0.0
pub_semver: ^2.1.0
+1 -1
View File
@@ -11,7 +11,7 @@ resolution: workspace
dependencies:
# See the release policy for managing this dependency at
# pkg/analyzer/doc/implementation/releasing.md.
analyzer: 8.2.0
analyzer: 8.3.0-dev
meta: ^1.10.0
path: ^1.9.0
test: ^1.25.0