Reuse LibraryScope in MetadataResolver.
R=brianwilkerson@google.com
Change-Id: If8ef8003fa800924facb5e59a99e1b7885a94093
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/102281
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer/lib/src/summary2/builder/source_library_builder.dart b/pkg/analyzer/lib/src/summary2/builder/source_library_builder.dart
index a459974f6..99a42f9 100644
--- a/pkg/analyzer/lib/src/summary2/builder/source_library_builder.dart
+++ b/pkg/analyzer/lib/src/summary2/builder/source_library_builder.dart
@@ -33,7 +33,7 @@
LinkedLibraryContext context;
LibraryElementImpl element;
- LibraryScope libraryScope;
+ LibraryScope scope;
/// Local declarations.
final Scope localScope = Scope.top();
@@ -212,7 +212,7 @@
void buildElement() {
element = linker.elementFactory.libraryOfUri('$uri');
- libraryScope = LibraryScope(element);
+ scope = LibraryScope(element);
}
void buildInitialExportScope() {
@@ -249,7 +249,7 @@
void resolveMetadata() {
for (CompilationUnitElementImpl unit in element.units) {
- var resolver = MetadataResolver(linker, element, unit);
+ var resolver = MetadataResolver(linker, element, scope, unit);
unit.linkedNode.accept(resolver);
}
}
@@ -265,7 +265,7 @@
element,
unitReference,
linker.contextFeatures.isEnabled(Feature.non_nullable),
- libraryScope,
+ scope,
);
unitContext.unit.accept(resolver);
}
diff --git a/pkg/analyzer/lib/src/summary2/metadata_resolver.dart b/pkg/analyzer/lib/src/summary2/metadata_resolver.dart
index 7c9e52f..a9265e1 100644
--- a/pkg/analyzer/lib/src/summary2/metadata_resolver.dart
+++ b/pkg/analyzer/lib/src/summary2/metadata_resolver.dart
@@ -14,11 +14,11 @@
class MetadataResolver extends ThrowingAstVisitor<void> {
final Linker _linker;
final LibraryElement _libraryElement;
+ final Scope _libraryScope;
final CompilationUnitElement _unitElement;
- Scope scope;
-
- MetadataResolver(this._linker, this._libraryElement, this._unitElement);
+ MetadataResolver(this._linker, this._libraryElement, this._libraryScope,
+ this._unitElement);
@override
void visitAnnotation(Annotation node) {
@@ -27,7 +27,7 @@
var holder = ElementHolder();
node.accept(LocalElementBuilder(holder, null));
- var astResolver = AstResolver(_linker, _libraryElement, scope);
+ var astResolver = AstResolver(_linker, _libraryElement, _libraryScope);
astResolver.resolve(node);
}
diff --git a/pkg/analyzer/lib/src/summary2/top_level_inference.dart b/pkg/analyzer/lib/src/summary2/top_level_inference.dart
index 5b35375..eef737d 100644
--- a/pkg/analyzer/lib/src/summary2/top_level_inference.dart
+++ b/pkg/analyzer/lib/src/summary2/top_level_inference.dart
@@ -50,7 +50,7 @@
_library = builder.element;
for (var unitContext in builder.context.units) {
for (var unitMember in unitContext.unit.declarations) {
- _scope = builder.libraryScope;
+ _scope = builder.scope;
if (unitMember is TopLevelVariableDeclaration) {
_variableDeclarationList(unitMember.variables);
} else if (unitMember is ClassOrMixinDeclaration) {
@@ -330,7 +330,7 @@
unit.types.forEach(_addClassElementFields);
unit.mixins.forEach(_addClassElementFields);
- _scope = builder.libraryScope;
+ _scope = builder.scope;
for (var element in unit.topLevelVariables) {
_addNode(element);
}