anchor.diff:    }
   
     List<Catch> readCatchList() {
  -    return new List<Catch>.generate(readUInt(), (i) => readCatch());
  +    int length = readUInt();
  +    List<Catch> result = new List<Catch>(length);
  +    for (int i = 0; i < length; ++i) {
  +      result[i] = readCatch();
  +    }
  +    return result;
     }
   
     Catch readCatch() {
  
positive.code:   }
  
    List<Supertype> readSupertypeList() {
      return new List<Supertype>.generate(readUInt(), (i) => readSupertype());
    }
  
    List<DartType> readDartTypeList() {
      return new List<DartType>.generate(readUInt(), (i) => readDartType());
    }
  
    List<NamedType> readNamedTypeList() {
      return new List<NamedType>.generate(readUInt(), (i) => readNamedType());
    }
  
    NamedType readNamedType() {
  
negative.code:     int length = readUInt();
      if (length == 0) return list ?? <TypeParameter>[];
      if (list == null) {
        list = new List<TypeParameter>(length);
        for (int i = 0; i < length; ++i) {
          list[i] = new TypeParameter(null, null)..parent = parent;
        }
      } else if (list.length != length) {
        list.length = length;
        for (int i = 0; i < length; ++i) {
  