anchor.diff:    testRangeErrors([1, 2, 3].sublist(1, 1), "sub-list");
     // Non-empty lists.
     testRangeErrors([1, 2, 3], "list");
  -  testRangeErrors(new List.filled(3, null), "fixed-list");
  +  testRangeErrors(List.filled(3, null, growable: false), "fixed-list");
     testRangeErrors(const [1, 2, 3], "const-list");
     testRangeErrors(new List.unmodifiable([1, 2, 3]), "unmodifiable");
     testRangeErrors(new Uint8List(3), "typed-list");
  
positive.code: 
    // Empty lists.
    testRangeErrors([], "list");
    testRangeErrors(new List.filled(0, null), "fixed-list");
    testRangeErrors(const [], "const-list");
    testRangeErrors(new List.unmodifiable([]), "unmodifiable");
    testRangeErrors(new Uint8List(0), "typed-list");
  
negative.code:   testTypedList(new Int32List(4).toList(growable: false));
  
    // Fixed length lists, length 4.
    testFixedLengthList(<T>(T t) => List<T>.filled(4, t));
    testFixedLengthList(<T>(T t) => List<T>.filled(4, t).toList(growable: false));
    // ListBase implementation of List.
    testFixedLengthList(<T>(T t) => new MyFixedList(List<T>.filled(4, t)));
    testFixedLengthList(<T>(T t) =>
        new MyFixedList<T>(List<T>.filled(4, t)).toList(growable: false));
  
    // Growable lists. Initial length 0.
    testGrowableList(<T>(T t) => <T>[].toList());
    testGrowableList(<T>(T t) => new List<T>.filled(0, t, growable: true));
    testGrowableList(<T>(T t) => []);
    testGrowableList(<T>(T t) => new List.from(const []));
    testGrowableList(<T>(T t) => new MyList([]));
    testGrowableList(<T>(T t) => new MyList<T>([]).toList());
  
    testTypedGrowableList(new Uint8List(0).toList());
    testTypedGrowableList(new Int8List(0).toList());
  