anchor.diff:          }
   
           int superclassDepth = getSuperclassDepth();
  +        int interfaceDepth = getInterfaceDepth(targetClass);
           if (superclassDepth >= 0) {
             _recordDistance('member (superclass)', superclassDepth);
             data.recordDistanceByDepth(getTargetDepth(), superclassDepth);
           } else {
  -          int interfaceDepth = getInterfaceDepth(targetClass);
             if (interfaceDepth < notFound) {
               _recordDistance('member (interface)', interfaceDepth);
             } else {
               _recordDistance('member (not found)', 0);
             }
  +        }
  +        if (interfaceDepth < notFound) {
  +          _recordDistance('member (shortest distance)', interfaceDepth);
           }
         }
       }
  
positive.code: 
    /// Write a report of the metrics that were computed to the [sink].
    void writeMetrics(StringSink sink) {
      sink.writeln('');
      _writeSideBySide(sink, [data.byTokenType, data.byElementKind],
          ['Token Types', 'Element Kinds']);
      sink.writeln('');
      sink.writeln('Type relationships');
      _writeContextMap(sink, data.byTypeMatch);
      sink.writeln('');
      sink.writeln('Structural indicators');
      _writeContextMap(sink, data.byDistance);
  
negative.code:                 continue;
                }
  
                collector.initializeFrom(resolvedUnitResult);
                resolvedUnitResult.unit.accept(collector);
              } catch (exception, stacktrace) {
                print('Exception caught analyzing: "$filePath"');
  