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);
         }