From 5be8fcc1d5425ef769065691f9fc32db3dcd0ec4 Mon Sep 17 00:00:00 2001 From: Konstantin Shcheglov Date: Mon, 13 Oct 2025 13:42:00 -0700 Subject: [PATCH] Elements. Deprecate TypeAliasElement.aliasedElement Change-Id: I6271efcc69fc891b41f605dd4f1398e5163b579d Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/454662 Commit-Queue: Konstantin Shcheglov Reviewed-by: Paul Berry Reviewed-by: Brian Wilkerson --- pkg/analysis_server_plugin/pubspec.yaml | 4 ++-- pkg/analyzer/CHANGELOG.md | 1 + pkg/analyzer/api.txt | 2 +- pkg/analyzer/lib/dart/element/element.dart | 1 + pkg/analyzer/lib/src/dart/element/element.dart | 1 + .../analysis/results/get_element_declaration_test.dart | 7 +++---- .../test/src/dart/resolution/generic_type_alias_test.dart | 4 ++-- pkg/analyzer_plugin/pubspec.yaml | 2 +- pkg/analyzer_testing/pubspec.yaml | 2 +- 9 files changed, 13 insertions(+), 11 deletions(-) diff --git a/pkg/analysis_server_plugin/pubspec.yaml b/pkg/analysis_server_plugin/pubspec.yaml index 296512e93e5..b7903fef8be 100644 --- a/pkg/analysis_server_plugin/pubspec.yaml +++ b/pkg/analysis_server_plugin/pubspec.yaml @@ -1,6 +1,6 @@ name: analysis_server_plugin description: A framework and support code for building plugins for the analysis server. -version: 0.3.2 +version: 0.3.3-dev repository: https://github.com/dart-lang/sdk/tree/main/pkg/analysis_server_plugin environment: @@ -12,7 +12,7 @@ dependencies: # See the release policy for managing this dependency at # pkg/analyzer/doc/implementation/releasing.md. analyzer: 8.4.0-dev - analyzer_plugin: 0.13.9 + analyzer_plugin: 0.13.10-dev meta: ^1.16.0 yaml: ^3.1.0 yaml_edit: ^2.2.0 diff --git a/pkg/analyzer/CHANGELOG.md b/pkg/analyzer/CHANGELOG.md index f0ac6f91934..43b9ee83866 100644 --- a/pkg/analyzer/CHANGELOG.md +++ b/pkg/analyzer/CHANGELOG.md @@ -1,6 +1,7 @@ ## 8.4.0-dev * Add the `experimental_member_use` warning, which warns about any reference to a declaration annotated with `@experimental`. +* Deprecate `TypeAliasElement.aliasedElement`, use `aliasedType` instead. ## 8.3.0 * Deprecate `TypeDefiningElement`, check for specific elements. diff --git a/pkg/analyzer/api.txt b/pkg/analyzer/api.txt index deef15f4e6d..8ac854efafe 100644 --- a/pkg/analyzer/api.txt +++ b/pkg/analyzer/api.txt @@ -4161,7 +4161,7 @@ package:analyzer/dart/element/element.dart: previousFragment (getter: TopLevelVariableFragment?) TypeAliasElement (class extends Object implements TypeParameterizedElement, TypeDefiningElement): new (constructor: TypeAliasElement Function()) - aliasedElement (getter: Element?) + aliasedElement (getter: Element?, deprecated) aliasedElement2 (getter: Element?, deprecated) aliasedType (getter: DartType) enclosingElement (getter: LibraryElement) diff --git a/pkg/analyzer/lib/dart/element/element.dart b/pkg/analyzer/lib/dart/element/element.dart index aec2b50b296..e3a13642957 100644 --- a/pkg/analyzer/lib/dart/element/element.dart +++ b/pkg/analyzer/lib/dart/element/element.dart @@ -3902,6 +3902,7 @@ abstract class TypeAliasElement /// For example, it could be [GenericFunctionTypeElement]. /// /// If there is no structure, return `null`. + @Deprecated('Use aliasedType instead') Element? get aliasedElement; /// If the aliased type has structure, return the corresponding element. diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart index 0904077236b..6a0291c49cb 100644 --- a/pkg/analyzer/lib/src/dart/element/element.dart +++ b/pkg/analyzer/lib/src/dart/element/element.dart @@ -10454,6 +10454,7 @@ class TypeAliasElementImpl extends ElementImpl _firstFragment.element = this; } + @Deprecated('Use aliasedType instead') @override @trackedIncludedInId ElementImpl? get aliasedElement { diff --git a/pkg/analyzer/test/src/dart/analysis/results/get_element_declaration_test.dart b/pkg/analyzer/test/src/dart/analysis/results/get_element_declaration_test.dart index f2c5b2f7673..85835c7fd91 100644 --- a/pkg/analyzer/test/src/dart/analysis/results/get_element_declaration_test.dart +++ b/pkg/analyzer/test/src/dart/analysis/results/get_element_declaration_test.dart @@ -272,12 +272,11 @@ void foo() {} expect(node.name.lexeme, 'foo'); } - test_genericFunctionTypeElement() async { + test_genericFunctionTypeFragment() async { await resolveTestCode(r''' -typedef F = void Function(); +void f(void Function() x) {} '''); - var typeAlias = findElement2.typeAlias('F'); - var fragment = typeAlias.aliasedElement!.firstFragment; + var fragment = findNode.singleGenericFunctionType.declaredFragment!; var result = await getFragmentDeclaration(fragment); expect(result, isNull); } diff --git a/pkg/analyzer/test/src/dart/resolution/generic_type_alias_test.dart b/pkg/analyzer/test/src/dart/resolution/generic_type_alias_test.dart index 41ad80eb94e..1a05ed8ded2 100644 --- a/pkg/analyzer/test/src/dart/resolution/generic_type_alias_test.dart +++ b/pkg/analyzer/test/src/dart/resolution/generic_type_alias_test.dart @@ -2,7 +2,7 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -import 'package:analyzer/dart/element/element.dart'; +import 'package:analyzer/dart/element/type.dart'; import 'package:analyzer/src/dart/error/syntactic_errors.dart'; import 'package:analyzer/src/error/codes.dart'; import 'package:test/test.dart'; @@ -319,7 +319,7 @@ typedef F = B Function(T a, U b); expect(t.name, 'T'); assertType(t.bound, 'A'); - var ff = f.aliasedElement as GenericFunctionTypeElement; + var ff = f.aliasedType as FunctionType; expect(ff.typeParameters, hasLength(1)); var u = ff.typeParameters[0]; diff --git a/pkg/analyzer_plugin/pubspec.yaml b/pkg/analyzer_plugin/pubspec.yaml index f936df6f651..969cd308eb2 100644 --- a/pkg/analyzer_plugin/pubspec.yaml +++ b/pkg/analyzer_plugin/pubspec.yaml @@ -1,6 +1,6 @@ name: analyzer_plugin description: A framework and support code for building plugins for the analysis server. -version: 0.13.9 +version: 0.13.10-dev repository: https://github.com/dart-lang/sdk/tree/main/pkg/analyzer_plugin environment: diff --git a/pkg/analyzer_testing/pubspec.yaml b/pkg/analyzer_testing/pubspec.yaml index 7228099aa84..c40637cf190 100644 --- a/pkg/analyzer_testing/pubspec.yaml +++ b/pkg/analyzer_testing/pubspec.yaml @@ -1,6 +1,6 @@ name: analyzer_testing description: Testing utilities related to the analyzer and analysis_server_plugin packages. -version: 0.1.4 +version: 0.1.5-dev repository: https://github.com/dart-lang/sdk/tree/main/pkg/analyzer_testing environment: