Parts. Deprecate LibraryElement.libraryImports
Change-Id: I9e3455fda9943123cc0aa0d95617f532bcec670f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/388440
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analysis_server/lib/src/cider/completion.dart b/pkg/analysis_server/lib/src/cider/completion.dart
index caf7adc..ce0fd14 100644
--- a/pkg/analysis_server/lib/src/cider/completion.dart
+++ b/pkg/analysis_server/lib/src/cider/completion.dart
@@ -13,6 +13,7 @@
import 'package:analyzer/src/dart/analysis/results.dart';
import 'package:analyzer/src/dart/micro/resolve_file.dart';
import 'package:analyzer/src/util/performance/operation_performance.dart';
+import 'package:analyzer/src/utilities/extensions/element.dart';
import 'package:meta/meta.dart';
/// The cache that can be reuse for across multiple completion request.
@@ -171,7 +172,12 @@
required OperationPerformanceImpl performance,
}) {
var suggestionBuilders = <CompletionSuggestionBuilder>[];
- for (var importedLibrary in target.importedLibraries) {
+ var importedLibraries = target.withEnclosing
+ .expand((fragment) => fragment.libraryImports)
+ .map((import) => import.importedLibrary)
+ .nonNulls
+ .toSet();
+ for (var importedLibrary in importedLibraries) {
var importedSuggestions = _importedLibrarySuggestions(
element: importedLibrary,
performance: performance,
@@ -263,23 +269,3 @@
_CiderImportedLibrarySuggestions(this.signature, this.suggestionBuilders);
}
-
-extension on CompilationUnitElement {
- Set<LibraryElement> get importedLibraries {
- var result = <LibraryElement>{};
- var current = this;
- while (true) {
- result.addAll(
- current.libraryImports
- .map((libraryImport) => libraryImport.importedLibrary)
- .nonNulls,
- );
- if (current.enclosingElement3 case var enclosing?) {
- current = enclosing;
- } else {
- break;
- }
- }
- return result;
- }
-}
diff --git a/pkg/analysis_server/lib/src/cider/rename.dart b/pkg/analysis_server/lib/src/cider/rename.dart
index 4da587a..e44230e 100644
--- a/pkg/analysis_server/lib/src/cider/rename.dart
+++ b/pkg/analysis_server/lib/src/cider/rename.dart
@@ -217,7 +217,7 @@
}
} else if (element is LibraryImportElement) {
var unit = (await canRename._fileResolver.resolve(path: sourcePath)).unit;
- var index = element.library.libraryImports.indexOf(element);
+ var index = element.enclosingElement3.libraryImports.indexOf(element);
var node = unit.directives.whereType<ImportDirective>().elementAt(index);
var prefixNode = node.prefix;
if (newName.isEmpty) {
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/declaration_helper.dart b/pkg/analysis_server/lib/src/services/completion/dart/declaration_helper.dart
index 2b41367..3540e78 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/declaration_helper.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/declaration_helper.dart
@@ -300,7 +300,7 @@
void addImportPrefixes() {
var library = request.libraryElement;
- for (var element in library.libraryImports) {
+ for (var element in library.definingCompilationUnit.libraryImports) {
var importPrefix = element.prefix;
if (importPrefix == null) {
continue;
@@ -824,7 +824,7 @@
// TODO(brianwilkerson): This will create suggestions for elements that
// conflict with different elements imported from a different library. Not
// sure whether that's the desired behavior.
- for (var importElement in library.libraryImports) {
+ for (var importElement in library.definingCompilationUnit.libraryImports) {
var importedLibrary = importElement.importedLibrary;
if (importedLibrary != null) {
_addConstructorsImportedFrom(
@@ -842,7 +842,7 @@
// TODO(brianwilkerson): This will create suggestions for elements that
// conflict with different elements imported from a different library. Not
// sure whether that's the desired behavior.
- for (var importElement in library.libraryImports) {
+ for (var importElement in library.definingCompilationUnit.libraryImports) {
var importedLibrary = importElement.importedLibrary;
if (importedLibrary != null) {
_addDeclarationsImportedFrom(
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/not_imported_completion_pass.dart b/pkg/analysis_server/lib/src/services/completion/dart/not_imported_completion_pass.dart
index 524b5b6..9718695 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/not_imported_completion_pass.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/not_imported_completion_pass.dart
@@ -213,7 +213,7 @@
Set<LibraryElement> importedLibraries = Set<LibraryElement>.identity();
_ImportSummary(LibraryElement library) {
- for (var import in library.libraryImports) {
+ for (var import in library.definingCompilationUnit.libraryImports) {
var importedLibrary = import.importedLibrary;
if (importedLibrary != null) {
if (import.combinators.isEmpty) {
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/change_to.dart b/pkg/analysis_server/lib/src/services/correction/dart/change_to.dart
index c02e7f6..604e0b5 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/change_to.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/change_to.dart
@@ -130,7 +130,8 @@
}
}
// Check elements from imports.
- for (var importElement in unitResult.libraryElement.libraryImports) {
+ for (var importElement
+ in unitResult.libraryElement.definingCompilationUnit.libraryImports) {
if (importElement.prefix?.element.name == prefixName) {
var namespace = getImportNamespace(importElement);
finder._updateList(namespace.values);
@@ -230,7 +231,8 @@
}
}
// Check unprefixed imports.
- for (var importElement in unitResult.libraryElement.libraryImports) {
+ for (var importElement
+ in unitResult.libraryElement.definingCompilationUnit.libraryImports) {
if (importElement.prefix?.element.name == prefixName) {
var namespace = getImportNamespace(importElement);
finder._updateList(namespace.values);
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/create_mixin.dart b/pkg/analysis_server/lib/src/services/correction/dart/create_mixin.dart
index a22d28b..9ebd3a4 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/create_mixin.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/create_mixin.dart
@@ -82,7 +82,8 @@
filePath = file;
prefix = '$eol$eol';
} else {
- for (var import in libraryElement.libraryImports) {
+ for (var import
+ in libraryElement.definingCompilationUnit.libraryImports) {
if (prefixElement is PrefixElement &&
import.prefix?.element == prefixElement) {
var library = import.importedLibrary;
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/import_library.dart b/pkg/analysis_server/lib/src/services/correction/dart/import_library.dart
index b2daece..35465a4 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/import_library.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/import_library.dart
@@ -82,7 +82,7 @@
// additional analysis.
var foundImport = false;
var producers = <ResolvedCorrectionProducer>[];
- for (var import in libraryElement.libraryImports) {
+ for (var import in libraryElement.definingCompilationUnit.libraryImports) {
// prepare element
var importedLibrary = import.importedLibrary;
if (importedLibrary == null || importedLibrary != libraryToImport) {
@@ -169,7 +169,7 @@
// Maybe there is an existing import, but it is with prefix and we don't use
// this prefix.
var alreadyImportedWithPrefix = <LibraryElement>{};
- for (var import in libraryElement.libraryImports) {
+ for (var import in libraryElement.definingCompilationUnit.libraryImports) {
// Prepare the element.
var libraryElement = import.importedLibrary;
if (libraryElement == null) {
diff --git a/pkg/analysis_server/lib/src/services/correction/fix/data_driven/element_matcher.dart b/pkg/analysis_server/lib/src/services/correction/fix/data_driven/element_matcher.dart
index 094e6cc..9b23c78 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix/data_driven/element_matcher.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix/data_driven/element_matcher.dart
@@ -162,7 +162,7 @@
if (library == null) {
return null;
}
- for (var importElement in library.libraryImports) {
+ for (var importElement in library.definingCompilationUnit.libraryImports) {
// TODO(brianwilkerson): Filter based on combinators to help avoid making
// invalid suggestions.
var uri = importElement.importedLibrary?.source.uri;
diff --git a/pkg/analysis_server/lib/src/services/correction/namespace.dart b/pkg/analysis_server/lib/src/services/correction/namespace.dart
index 1c6dd12..c55ff49 100644
--- a/pkg/analysis_server/lib/src/services/correction/namespace.dart
+++ b/pkg/analysis_server/lib/src/services/correction/namespace.dart
@@ -44,7 +44,8 @@
var usedLibrary = element.library;
// find ImportElement that imports used library with used prefix
List<LibraryImportElement>? candidates;
- for (var importElement in libraryElement.libraryImports) {
+ for (var importElement
+ in libraryElement.definingCompilationUnit.libraryImports) {
// required library
if (importElement.importedLibrary != usedLibrary) {
continue;
diff --git a/pkg/analysis_server/lib/src/services/refactoring/legacy/extract_method.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/extract_method.dart
index daae91b..d4ad8af 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/legacy/extract_method.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/extract_method.dart
@@ -1783,7 +1783,7 @@
///
/// May be `null` if was not imported, i.e. declared in the same library.
LibraryImportElement? _getImportElement(Element element) {
- for (var imp in library.libraryImports) {
+ for (var imp in library.definingCompilationUnit.libraryImports) {
var definedNames = getImportNamespace(imp);
if (definedNames.containsValue(element)) {
return imp;
diff --git a/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_import.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_import.dart
index b903678..ae2ab40 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_import.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_import.dart
@@ -103,7 +103,7 @@
return null;
}
var unit = unitResult.unit;
- var index = library.libraryImports.indexOf(element);
+ var index = library.definingCompilationUnit.libraryImports.indexOf(element);
return unit.directives.whereType<ImportDirective>().elementAt(index);
}
diff --git a/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_unit_member.dart b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_unit_member.dart
index 2a1dca7..46dc9e3 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_unit_member.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/legacy/rename_unit_member.dart
@@ -195,7 +195,8 @@
return true;
}
// check imports
- for (var importElement in atLibrary.libraryImports) {
+ for (var importElement
+ in atLibrary.definingCompilationUnit.libraryImports) {
// ignore if imported with prefix
if (importElement.prefix != null) {
continue;
diff --git a/pkg/analysis_server/lib/src/utilities/import_analyzer.dart b/pkg/analysis_server/lib/src/utilities/import_analyzer.dart
index af58b3a..f4e7502 100644
--- a/pkg/analysis_server/lib/src/utilities/import_analyzer.dart
+++ b/pkg/analysis_server/lib/src/utilities/import_analyzer.dart
@@ -161,7 +161,8 @@
/// Initialize a newly created finder to send information to the [recorder].
_ReferenceFinder(this.unit, this.recorder) {
- for (var import in unit.libraryElement.libraryImports) {
+ for (var import
+ in unit.libraryElement.definingCompilationUnit.libraryImports) {
_importsByPrefix
.putIfAbsent(import.prefix?.element.name ?? '', () => {})
.add(import);
diff --git a/pkg/analyzer/CHANGELOG.md b/pkg/analyzer/CHANGELOG.md
index 32e1340..4f04e94 100644
--- a/pkg/analyzer/CHANGELOG.md
+++ b/pkg/analyzer/CHANGELOG.md
@@ -6,6 +6,8 @@
* Deprecated `LibraryElement.isBrowserApplication`.
* Deprecated `LibraryElement.libraryExports`,
use `CompilationUnitElement.libraryExports` instead.
+* Deprecated `LibraryElement.libraryImports`,
+ use `CompilationUnitElement.libraryImports` 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 48348cc..eb9c6e5 100644
--- a/pkg/analyzer/lib/dart/element/element.dart
+++ b/pkg/analyzer/lib/dart/element/element.dart
@@ -2009,6 +2009,9 @@
/// the order in which they were specified.
List<NamespaceCombinator> get combinators;
+ @override
+ CompilationUnitElement get enclosingElement3;
+
/// The [LibraryElement], if [uri] is a [DirectiveUriWithLibrary].
LibraryElement? get importedLibrary;
@@ -2077,6 +2080,7 @@
List<LibraryExportElement> get libraryExports;
/// The imports defined in this library.
+ @Deprecated('Use CompilationUnitElement.libraryImports')
List<LibraryImportElement> get libraryImports;
/// The prefixes used to `import` libraries into this library.
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index 6c40b13..c5314f4 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -6280,6 +6280,11 @@
}) : super(null, importKeywordOffset);
@override
+ CompilationUnitElementImpl get enclosingElement3 {
+ return super.enclosingElement3 as CompilationUnitElementImpl;
+ }
+
+ @override
int get hashCode => identityHashCode(this);
@override
@@ -6350,6 +6355,7 @@
definingCompilationUnit,
// ignore:deprecated_member_use_from_same_package
...libraryExports,
+ // ignore:deprecated_member_use_from_same_package
...libraryImports,
];
@@ -6382,6 +6388,7 @@
return definingCompilationUnit.libraryExports;
}
+ @Deprecated('Use CompilationUnitElement.libraryImports')
@override
List<LibraryImportElementImpl> get libraryImports {
return definingCompilationUnit.libraryImports;
diff --git a/pkg/analyzer/lib/src/dart/micro/utils.dart b/pkg/analyzer/lib/src/dart/micro/utils.dart
index 3977c01..d436dec 100644
--- a/pkg/analyzer/lib/src/dart/micro/utils.dart
+++ b/pkg/analyzer/lib/src/dart/micro/utils.dart
@@ -7,6 +7,7 @@
import 'package:analyzer/src/dart/ast/ast.dart';
import 'package:analyzer/src/dart/ast/element_locator.dart';
import 'package:analyzer/src/dart/element/element.dart';
+import 'package:analyzer/src/utilities/extensions/element.dart';
/// Return the [Element] of the given [node], or `null` if [node] is `null` or
/// does not have an element.
@@ -68,7 +69,7 @@
/// [element] - the referenced element.
/// [importElementsMap] - the cache of [Element]s imported by [LibraryImportElement]s.
LibraryImportElement? _getImportElement(
- LibraryElement libraryElement,
+ CompilationUnitElementImpl libraryFragment,
String prefix,
Element element,
Map<LibraryImportElement, Set<Element>> importElementsMap) {
@@ -78,7 +79,10 @@
var usedLibrary = element.library;
// find ImportElement that imports used library with used prefix
List<LibraryImportElement>? candidates;
- for (var importElement in libraryElement.libraryImports) {
+ var libraryImports = libraryFragment.withEnclosing
+ .expand((fragment) => fragment.libraryImports)
+ .toList();
+ for (var importElement in libraryImports) {
// required library
if (importElement.importedLibrary != usedLibrary) {
continue;
@@ -134,8 +138,8 @@
// prepare environment
var parent = prefixNode.parent;
var unit = prefixNode.thisOrAncestorOfType<CompilationUnit>();
- var libraryElement = unit?.declaredElement?.library;
- if (libraryElement == null) {
+ var libraryFragment = unit?.declaredElement as CompilationUnitElementImpl?;
+ if (libraryFragment == null) {
return null;
}
// prepare used element
@@ -159,7 +163,7 @@
var prefix = prefixNode.name;
var importElementsMap = <LibraryImportElement, Set<Element>>{};
return _getImportElement(
- libraryElement, prefix, usedElement, importElementsMap);
+ libraryFragment, prefix, usedElement, importElementsMap);
}
class MatchInfo {
diff --git a/pkg/analyzer/lib/src/generated/error_verifier.dart b/pkg/analyzer/lib/src/generated/error_verifier.dart
index e31fcfe..12060a5 100644
--- a/pkg/analyzer/lib/src/generated/error_verifier.dart
+++ b/pkg/analyzer/lib/src/generated/error_verifier.dart
@@ -6287,7 +6287,9 @@
if (name == null) {
return '';
}
- var imports = _currentLibrary.libraryImports;
+ var imports = _currentUnit.withEnclosing
+ .expand((fragment) => fragment.libraryImports)
+ .toList();
int count = imports.length;
for (int i = 0; i < count; i++) {
if (identical(imports[i].importedLibrary, library)) {
diff --git a/pkg/analyzer/lib/src/summary2/macro_declarations.dart b/pkg/analyzer/lib/src/summary2/macro_declarations.dart
index 75a992c..3c31dbe 100644
--- a/pkg/analyzer/lib/src/summary2/macro_declarations.dart
+++ b/pkg/analyzer/lib/src/summary2/macro_declarations.dart
@@ -420,7 +420,8 @@
annotation as ElementAnnotationImpl;
var node = annotation.annotationAst;
- var importPrefixNames = annotation.library.libraryImports
+ var importPrefixNames = annotation.compilationUnit.withEnclosing
+ .expand((fragment) => fragment.libraryImports)
.map((e) => e.prefix?.element.name)
.nonNulls
.toSet();
diff --git a/pkg/analyzer/lib/src/test_utilities/find_element.dart b/pkg/analyzer/lib/src/test_utilities/find_element.dart
index 21a424a..3506aa3 100644
--- a/pkg/analyzer/lib/src/test_utilities/find_element.dart
+++ b/pkg/analyzer/lib/src/test_utilities/find_element.dart
@@ -5,6 +5,7 @@
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/src/test_utilities/function_ast_visitor.dart';
+import 'package:analyzer/src/utilities/extensions/element.dart';
/// Helper for finding elements declared in the resolved [unit].
class FindElement extends _FindElementBase {
@@ -52,13 +53,15 @@
LibraryImportElement import(String targetUri, {bool mustBeUnique = true}) {
LibraryImportElement? importElement;
- for (var import in libraryElement.libraryImports) {
- var importedUri = import.importedLibrary?.source.uri.toString();
- if (importedUri == targetUri) {
- if (importElement == null) {
- importElement = import;
- } else if (mustBeUnique) {
- throw StateError('Not unique: $targetUri');
+ for (var libraryFragment in unitElement.withEnclosing) {
+ for (var import in libraryFragment.libraryImports) {
+ var importedUri = import.importedLibrary?.source.uri.toString();
+ if (importedUri == targetUri) {
+ if (importElement == null) {
+ importElement = import;
+ } else if (mustBeUnique) {
+ throw StateError('Not unique: $targetUri');
+ }
}
}
}
@@ -244,10 +247,12 @@
}
PrefixElement prefix(String name) {
- for (var import_ in libraryElement.libraryImports) {
- var prefix = import_.prefix?.element;
- if (prefix != null && prefix.name == name) {
- return prefix;
+ for (var libraryFragment in unitElement.withEnclosing) {
+ for (var import_ in libraryFragment.libraryImports) {
+ var prefix = import_.prefix?.element;
+ if (prefix != null && prefix.name == name) {
+ return prefix;
+ }
}
}
throw StateError('Not found: $name');
diff --git a/pkg/analyzer/test/src/summary/element_text.dart b/pkg/analyzer/test/src/summary/element_text.dart
index 6afa468..949eb23 100644
--- a/pkg/analyzer/test/src/summary/element_text.dart
+++ b/pkg/analyzer/test/src/summary/element_text.dart
@@ -2649,6 +2649,7 @@
_writeSinceSdkVersion(e);
if (configuration.withImports) {
+ // ignore:deprecated_member_use_from_same_package
var imports = e.libraryImports.where((import) {
return configuration.withSyntheticDartCoreImport || !import.isSynthetic;
}).toList();
diff --git a/pkg/analyzer/test/src/summary/elements/library_import_test.dart b/pkg/analyzer/test/src/summary/elements/library_import_test.dart
index b7a42d9..81e9161 100644
--- a/pkg/analyzer/test/src/summary/elements/library_import_test.dart
+++ b/pkg/analyzer/test/src/summary/elements/library_import_test.dart
@@ -628,7 +628,7 @@
var library = await buildLibrary('''
import "dart:math" hide e, pi;
''');
- var import = library.libraryImports[0];
+ var import = library.definingCompilationUnit.libraryImports[0];
var combinator = import.combinators[0] as HideElementCombinator;
expect(combinator.offset, 19);
expect(combinator.end, 29);
@@ -801,7 +801,8 @@
newFile('$testPackageLibPath/a.dart', 'library a; class C {}');
var library = await buildLibrary('import "a.dart" as a; a.C c;');
- var prefixElement = library.libraryImports[0].prefix!.element;
+ var prefixElement =
+ library.definingCompilationUnit.libraryImports[0].prefix!.element;
expect(prefixElement.nameOffset, 19);
checkElementText(library, r'''
@@ -894,10 +895,10 @@
class C {}
class D extends p.C {} // Prevent "unused import" warning
''');
- expect(library.libraryImports, hasLength(2));
- expect(
- library.libraryImports[0].importedLibrary!.location, library.location);
- expect(library.libraryImports[1].importedLibrary!.isDartCore, true);
+ var libraryImports = library.definingCompilationUnit.libraryImports;
+ expect(libraryImports, hasLength(2));
+ expect(libraryImports[0].importedLibrary!.location, library.location);
+ expect(libraryImports[1].importedLibrary!.isDartCore, true);
checkElementText(library, r'''
library
reference: <testLibrary>
@@ -1107,7 +1108,7 @@
var library = await buildLibrary('''
import "dart:math" show e, pi;
''');
- var import = library.libraryImports[0];
+ var import = library.definingCompilationUnit.libraryImports[0];
var combinator = import.combinators[0] as ShowElementCombinator;
expect(combinator.offset, 19);
expect(combinator.end, 29);
@@ -1118,7 +1119,8 @@
import 'foo.dart';
''');
- var uri = library.libraryImports[0].uri as DirectiveUriWithLibrary;
+ var libraryImports = library.definingCompilationUnit.libraryImports;
+ var uri = libraryImports[0].uri as DirectiveUriWithLibrary;
expect(uri.relativeUriString, 'foo.dart');
}
@@ -1281,8 +1283,9 @@
import 'dart:math' as p1;
''');
var p1 = library.prefixes.singleWhere((prefix) => prefix.name == 'p1');
- var import_async = library.libraryImports[0];
- var import_math = library.libraryImports[2];
+ var libraryImports = library.definingCompilationUnit.libraryImports;
+ var import_async = libraryImports[0];
+ var import_math = libraryImports[2];
expect(p1.imports, unorderedEquals([import_async, import_math]));
}
@@ -1838,7 +1841,8 @@
test_unresolved_import() async {
var library = await buildLibrary("import 'foo.dart';");
- var importedLibrary = library.libraryImports[0].importedLibrary!;
+ var libraryImports = library.definingCompilationUnit.libraryImports;
+ var importedLibrary = libraryImports[0].importedLibrary!;
expect(importedLibrary.loadLibraryFunction, isNotNull);
expect(importedLibrary.publicNamespace, isNotNull);
expect(importedLibrary.exportNamespace, isNotNull);
diff --git a/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_dart.dart b/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_dart.dart
index 4392edc..16dd85f 100644
--- a/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_dart.dart
+++ b/pkg/analyzer_plugin/lib/src/utilities/change_builder/change_builder_dart.dart
@@ -2122,7 +2122,8 @@
return ImportLibraryElementResultImpl(null);
}
- for (var import in resolvedUnit.libraryElement.libraryImports) {
+ for (var import
+ in resolvedUnit.libraryElement.definingCompilationUnit.libraryImports) {
var importedLibrary = import.importedLibrary;
if (importedLibrary != null && importedLibrary.source.uri == uri) {
return ImportLibraryElementResultImpl(import.prefix?.element.name);
@@ -2147,7 +2148,8 @@
if (resolvedUnit.libraryElement.source.uri == uri) return false;
// Existing import.
- for (var import in resolvedUnit.libraryElement.libraryImports) {
+ for (var import
+ in resolvedUnit.libraryElement.definingCompilationUnit.libraryImports) {
var importedLibrary = import.importedLibrary;
if (importedLibrary != null && importedLibrary.source.uri == uri) {
return true;
@@ -2669,7 +2671,8 @@
///
/// The result may be an existing import, or one that is pending.
_LibraryImport? _getImportElement(Element element) {
- for (var import in resolvedUnit.libraryElement.libraryImports) {
+ for (var import
+ in resolvedUnit.libraryElement.definingCompilationUnit.libraryImports) {
var definedNames = import.namespace.definedNames;
if (definedNames.containsValue(element)) {
return _LibraryImport(
@@ -2695,7 +2698,8 @@
List<LibraryImportElement> _getImportsForUri(Uri uri) {
return [
- for (var import in resolvedUnit.libraryElement.libraryImports)
+ for (var import
+ in resolvedUnit.libraryElement.definingCompilationUnit.libraryImports)
if (import.importedLibrary?.source.uri == uri) import,
];
}
@@ -2779,7 +2783,8 @@
forceAbsolute: forceAbsolute, forceRelative: forceRelative);
// Collect the list of existing shows and hides for any imports that match
// the URI and prefix we care about.
- for (var element in resolvedUnit.libraryElement.libraryImports) {
+ for (var element in resolvedUnit
+ .libraryElement.definingCompilationUnit.libraryImports) {
var library = element.importedLibrary;
if (library == null) {
continue;