anchor.diff:  
     /// 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;
  
positive.code:   @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();
  }
  
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';
  
  