anchor.diff:          }
   
           int superclassDepth = getSuperclassDepth();
  -        // TODO(brianwilkerson) Consider cross referencing with the depth of the
  -        //  class containing the reference.
           if (superclassDepth >= 0) {
             _recordDistance('member (superclass)', superclassDepth);
  +          data.recordDistanceByDepth(getTargetDepth(), superclassDepth);
           } else {
  -          int interfaceDepth = getInterfaceDepth(subclass);
  +          int interfaceDepth = getInterfaceDepth(targetClass);
             if (interfaceDepth < notFound) {
               _recordDistance('member (interface)', interfaceDepth);
             } else {
  
positive.code:     sink.writeln('');
      sink.writeln('Structural indicators');
      _writeContextMap(sink, data.byDistance);
      _writeTokenData(sink, data.tokenDistances);
    }
  
    /// Return the minimum widths for each of the columns in the given [table].
    ///
    /// The table is represented as a list or rows, where each row is a list of the
    /// contents of the cells in that row.
    ///
    /// Throws an [ArgumentError] if the table is empty or if the rows do not
    /// contain the same number of cells.
  
negative.code:   /// A table mapping match types to counts by kind of type match.
    Map<String, Map<String, int>> byTypeMatch = {};
  
    /// A table mapping the depth of a target type to the distance between the
    /// target type and the member type.
    Map<int, Map<int, int>> distanceByDepthMap = {};
  
    /// A table mapping distances from an identifier to the nearest previous token
    /// with the same lexeme to the number of times that distance was found.
    Map<int, int> tokenDistances = {};
  