anchor.diff:    @override
     String toString() => parent == null ? 'root' : '$parent::$name';
   }
  -
  -abstract class ReferenceNodeAccessor {
  -  /// Return the node that corresponds to this [Reference], read it if not yet.
  -  AstNode get node;
  -
  -  /// Fill [Reference.nodeAccessor] for children.
  -  ///
  -  /// TODO(scheglov) only class reader has a meaningful implementation.
  -  void readIndex();
  -}
  
positive.code: 
    /// The simple name of the reference in its [parent].
    final String name;
  
    /// The node accessor, used to read nodes lazily.
    /// Or `null` if a named container.
    ReferenceNodeAccessor? nodeAccessor;
  
    /// The corresponding [AstNode], or `null` if a named container.
    /// TODO(scheglov) remove it
    AstNode? node;
  
    /// The corresponding [Element], or `null` if a named container.
    Element? element;
  
negative.code: // for details. All rights reserved. Use of this source code is governed by a
  // BSD-style license that can be found in the LICENSE file.
  
  import 'package:analyzer/dart/element/element.dart';
  import 'package:analyzer/src/summary2/scope.dart';
  
  