anchor.diff:    }
   }
   
  +/// Base class for visitors that perform resolution.  This class keeps track of
  +/// some of the basic information that is needed by resolution stages, such as
  +/// the defining library and the error reporter.
  +abstract class ResolverBase extends UnifyingAstVisitor<void> {
  +  /// The element for the library containing the compilation unit being visited.
  +  final LibraryElementImpl definingLibrary;
  +
  +  /// The source representing the compilation unit being visited.
  +  final Source source;
  +
  +  /// The object used to access the types from the core library.
  +  final TypeProviderImpl typeProvider;
  +
  +  /// The error reporter that will be informed of any errors that are found
  +  /// during resolution.
  +  final ErrorReporter errorReporter;
  +
  +  ResolverBase(this.definingLibrary, this.source, this.typeProvider,
  +      AnalysisErrorListener errorListener)
  +      : errorReporter = ErrorReporter(
  +          errorListener,
  +          source,
  +          isNonNullableByDefault: definingLibrary.isNonNullableByDefault,
  +        );
  +}
  +
   /// Instances of the class `ResolverVisitor` are used to resolve the nodes
   /// within a single compilation unit.
   class ResolverVisitor extends ScopedVisitor with ErrorDetectionHelpers {
  
positive.code:   /// [nameScope] is the scope used to resolve identifiers in the node that will
    /// first be visited.  If `null` or unspecified, a new [LibraryScope] will be
    /// created based on [definingLibrary] and [typeProvider].
    ScopedVisitor(this.definingLibrary, Source source, this.typeProvider,
        AnalysisErrorListener errorListener,
        {Scope? nameScope})
        : source = source,
          errorReporter = ErrorReporter(
            errorListener,
            source,
            isNonNullableByDefault: definingLibrary.isNonNullableByDefault,
          ),
          nameScope = nameScope ?? LibraryScope(definingLibrary);
  
    /// Return the implicit label scope in which the current node is being
    /// resolved.
  
negative.code: 
  /// The abstract class `ScopedVisitor` maintains name and label scopes as an AST
  /// structure is being visited.
  abstract class ScopedVisitor extends ResolverBase {
    static const _nameScopeProperty = 'nameScope';
  
    /// The scope used to resolve identifiers.
    Scope nameScope;
  