From 164777e2cd51268ea705103868edc8d3b8f4181b Mon Sep 17 00:00:00 2001 From: Konstantin Shcheglov Date: Mon, 7 Oct 2024 20:43:10 +0000 Subject: [PATCH] Part. Deprecate LibraryElement.scope Change-Id: I85a24d0f1d0b4251415644fe1438503e41710436 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/388682 Reviewed-by: Brian Wilkerson Commit-Queue: Konstantin Shcheglov --- .../lib/src/computer/import_elements_computer.dart | 2 +- pkg/analyzer/CHANGELOG.md | 2 ++ pkg/analyzer/lib/dart/element/element.dart | 7 +++++++ .../test/src/dart/resolution/library_element_test.dart | 8 ++++++++ 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/pkg/analysis_server/lib/src/computer/import_elements_computer.dart b/pkg/analysis_server/lib/src/computer/import_elements_computer.dart index f6f71c7a026..378e2556b98 100644 --- a/pkg/analysis_server/lib/src/computer/import_elements_computer.dart +++ b/pkg/analysis_server/lib/src/computer/import_elements_computer.dart @@ -325,7 +325,7 @@ class ImportElementsComputer { } bool _hasElement(String prefix, String name) { - var scope = libraryResult.libraryElement.scope; + var scope = libraryResult.libraryElement.definingCompilationUnit.scope; if (prefix.isNotEmpty) { var prefixElement = scope.lookup(prefix).getter; diff --git a/pkg/analyzer/CHANGELOG.md b/pkg/analyzer/CHANGELOG.md index 12912e89330..80913abf0d2 100644 --- a/pkg/analyzer/CHANGELOG.md +++ b/pkg/analyzer/CHANGELOG.md @@ -12,6 +12,8 @@ use `CompilationUnitElement.libraryImportPrefixes` instead. * Deprecated `LibraryElement.parts`, use `CompilationUnitElement.parts` instead. +* Deprecated `LibraryElement.scope`, + use `CompilationUnitElement.scope` instead. ## 6.9.0 * `NormalFormalParameter` now implements `AnnotatedNode`. diff --git a/pkg/analyzer/lib/dart/element/element.dart b/pkg/analyzer/lib/dart/element/element.dart index f154ed93607..f631bce4a0d 100644 --- a/pkg/analyzer/lib/dart/element/element.dart +++ b/pkg/analyzer/lib/dart/element/element.dart @@ -419,6 +419,12 @@ abstract class CompilationUnitElement implements UriReferencedElement { /// The parts included by this unit. List get parts; + /// The scope used to resolve names within this compilation unit. + /// + /// It includes all of the elements that are declared in the library, and all + /// of the elements imported into this unit or parent units. + Scope get scope; + @override AnalysisSession get session; @@ -2094,6 +2100,7 @@ abstract class LibraryOrAugmentationElement implements Element { /// /// It consists of elements that are either declared in the library, or /// imported into it. + @Deprecated('Use CompilationUnitElement.scope') Scope get scope; @override diff --git a/pkg/analyzer/test/src/dart/resolution/library_element_test.dart b/pkg/analyzer/test/src/dart/resolution/library_element_test.dart index d79225fed95..6472877b627 100644 --- a/pkg/analyzer/test/src/dart/resolution/library_element_test.dart +++ b/pkg/analyzer/test/src/dart/resolution/library_element_test.dart @@ -177,6 +177,7 @@ class LibraryElementTest_featureSet extends PubPackageResolutionTest { @reflectiveTest class LibraryElementTest_scope extends PubPackageResolutionTest { + @deprecated test_lookup() async { await assertNoErrorsInCode(r''' int foo = 0; @@ -194,6 +195,7 @@ int foo = 0; ); } + @deprecated test_lookup_extension_unnamed() async { await assertNoErrorsInCode(r''' extension on int {} @@ -206,6 +208,7 @@ extension on int {} ); } + @deprecated test_lookup_implicitCoreImport() async { await assertNoErrorsInCode(''); @@ -217,6 +220,7 @@ extension on int {} ); } + @deprecated test_lookup_notFound() async { await assertNoErrorsInCode(''); @@ -231,6 +235,7 @@ extension on int {} ); } + @deprecated test_lookup_prefersLocal() async { await assertNoErrorsInCode(r''' // ignore:unused_import @@ -252,6 +257,7 @@ int sin() => 3; ); } + @deprecated test_lookup_prefix() async { await assertNoErrorsInCode(r''' // ignore:unused_import @@ -266,6 +272,7 @@ import 'dart:math' as math; ); } + @deprecated test_lookup_respectsCombinator_hide() async { await assertNoErrorsInCode(r''' // ignore:unused_import @@ -289,6 +296,7 @@ import 'dart:math' hide sin; ); } + @deprecated test_lookup_respectsCombinator_show() async { await assertNoErrorsInCode(r''' // ignore:unused_import