anchor.diff:  
     List<Expression> readExpressionList() {
       int length = readUInt30();
  -    List<Expression> result =
  -        new List<Expression>.filled(length, null, growable: true);
  -    for (int i = 0; i < length; ++i) {
  -      result[i] = readExpression();
  -    }
  -    return result;
  +    return new List<Expression>.generate(length, (_) => readExpression(),
  +        growable: true);
     }
   
     Expression readExpressionOption() {
  
positive.code:     result.libraryCount = readUint32();
      // Library offsets are used for start and end offsets, so there is one extra
      // element that this the end offset of the last library
      result.libraryOffsets = new List<int>.filled(result.libraryCount + 1, null);
      result.componentFileSizeInBytes = readUint32();
      if (result.componentFileSizeInBytes != componentFileSize) {
        throw "Malformed binary: This component file's component index indicates "
  
negative.code: 
    List<Supertype> readSupertypeList() {
      int length = readUInt30();
      return new List<Supertype>.generate(length, (_) => readSupertype(),
          growable: true);
    }
  
    List<DartType> readDartTypeList() {
      int length = readUInt30();
      return new List<DartType>.generate(length, (_) => readDartType(),
          growable: true);
    }
  
    List<NamedType> readNamedTypeList() {
      int length = readUInt30();
      return new List<NamedType>.generate(length, (_) => readNamedType(),
          growable: true);
    }
  
    NamedType readNamedType() {
  