anchor.diff:          break;
       }
       if (spec.type != null) {
  -      visitType(spec.type.type, output);
  +      spec.type.type.accept(this, output);
         output.write(' ');
       }
       output.write(spec.name);
  
positive.code:       output.write('static ');
      }
      if (spec.returns != null) {
        visitType(spec.returns.type, output);
        output.write(' ');
      }
      if (spec.type == MethodType.getter) {
  
negative.code:   @override
    visitType(TypeReference spec, [StringSink output]) {
      output ??= new StringBuffer();
      // Intentionally not .accept to avoid stack overflow.
      visitReference(spec, output);
      if (spec.bound != null) {
        output.write(' extends ');
        spec.bound.type.accept(this, output);
      }
      visitTypeParameters(spec.types.map((r) => r.type), output);
      return output;
  