anchor.diff:    List<Expression> readAnnotationList(TreeNode parent) {
       int length = readUInt30();
       if (length == 0) return const <Expression>[];
  -    List<Expression> list =
  -        new List<Expression>.filled(length, null, growable: true);
  -    for (int i = 0; i < length; ++i) {
  -      list[i] = readExpression()..parent = parent;
  -    }
  -    return list;
  +    return new List<Expression>.generate(
  +        length, (_) => readExpression()..parent = parent,
  +        growable: true);
     }
   
     void _fillTreeNodeList(
  
positive.code: 
    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;
    }
  
    Expression readExpressionOption() {
  
negative.code:     for (int i = 0; i < procedureCount + 1; i++) {
        procedureOffsets[i] = _componentStartOffset + readUint32();
      }
      List<int> classOffsets = new List<int>.filled(
          classCount + 1,
          // Use `-1` as a dummy default value.
          -1,
          growable: false);
  
      // There is a field for the procedure count, that number + 1 (for the end)
      // offsets, then the class count and that number + 1 (for the end) offsets.
  