anchor.diff:      if (value != null) {
         String valueString = null;
         try {
  -        valueString = value.toString();
  +        if (value is Source) {
  +          valueString = 'Source (uri="${value.uri}", path="${value.fullName}")';
  +        } else {
  +          valueString = value.toString();
  +        }
         } catch (exception, stackTrace) {
           exceptions.add(new CaughtException(exception, stackTrace));
         }
  
positive.code:       _writeProperty("element", node.element);
      } else if (node is ExportDirective) {
        _writeProperty("element", node.element);
      } else if (node is FunctionExpressionInvocation) {
        _writeProperty('static element', node.staticElement);
        _writeProperty('static type', node.staticType);
  
negative.code:       _writeProperty('propagated type', node.propagatedType);
      } else if (node is ImportDirective) {
        _writeProperty("element", node.element);
        _writeProperty("source", node.source);
      } else if (node is LibraryDirective) {
        _writeProperty("element", node.element);
      } else if (node is PartDirective) {
        _writeProperty("element", node.element);
        _writeProperty("source", node.source);
      } else if (node is PartOfDirective) {
        _writeProperty("element", node.element);
      } else if (node is PostfixExpression) {
  