anchor.diff:        result.add(".");
       }
       result.add(procedure.name.name);
  -    return result;
  -  }
  -
  -  List<Object> visitPartialInstantiationConstant(
  -      PartialInstantiationConstant node) {
  -    List<Object> result = node.tearOffConstant.accept(this);
  +  }
  +
  +  void visitPartialInstantiationConstant(PartialInstantiationConstant node) {
  +    node.tearOffConstant.accept(this);
       if (node.types.isNotEmpty) {
         result.add("<");
         bool first = true;
         for (DartType typeArg in node.types) {
           if (!first) result.add(", ");
  -        result.addAll(typeArg.accept(this));
  +        typeArg.accept(this);
           first = false;
         }
         result.add(">");
       }
  -    return result;
  -  }
  -
  -  List<Object> visitTypeLiteralConstant(TypeLiteralConstant node) {
  -    return node.type.accept(this);
  +  }
  +
  +  void visitTypeLiteralConstant(TypeLiteralConstant node) {
  +    node.type.accept(this);
     }
   }
   
  
positive.code: /// raw types with numeric markers in Dart comments (e.g. `/*1*/`) to
  /// distinguish different types with the same name. This is used in diagnostic
  /// messages to indicate the origins of types occurring in the message.
  class TypeLabeler
      implements DartTypeVisitor<List<Object>>, ConstantVisitor<List<Object>> {
    List<LabeledClassName> names = <LabeledClassName>[];
    Map<String, List<LabeledClassName>> nameMap =
        <String, List<LabeledClassName>>{};
  
    /// Pretty-print a type.
    /// When all types and constants appearing in the same message have been
  
negative.code:           // Bound was not specified, and therefore should not be printed.
          } else {
            result.add(" extends ");
            param.bound.accept(this);
          }
        }
        result.add(">");
  