anchor.diff:  
     void readLinkTable(CanonicalName linkRoot) {
       int length = readUInt30();
  -    _linkTable = new List<CanonicalName>.filled(length, null);
  +    _linkTable = new List<CanonicalName>.filled(
  +        length,
  +        // Use [linkRoot] as a dummy default value.
  +        linkRoot,
  +        growable: false);
       for (int i = 0; i < length; ++i) {
         int biasedParentIndex = readUInt30();
         String name = readStringReference();
  
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:       _sourceUriTable[i] = uri;
        Uint8List sourceCode = readByteList();
        int lineCount = readUInt30();
        List<int> lineStarts = new List<int>.filled(
            lineCount,
            // Use `-1` as a dummy default value.
            -1,
            growable: false);
        int previousLineStart = 0;
        for (int j = 0; j < lineCount; ++j) {
          int lineStart = readUInt30() + previousLineStart;
  