dart-sdk/tests/corelib/list_for_each_test.dart
Riley Porter 4d91dc7a47 [tests] Removing List constructor usage in corelib tests.
Replacing usage of deprecated `new List()` and `new List(x)` in tests
with `List.filled` or `[]` where applicable.

Change-Id: Ie52a1869dfa25e141a8486c02c2d7668e9303ec9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/141022
Reviewed-by: Riley Porter <rileyporter@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Riley Porter <rileyporter@google.com>
2020-03-30 19:58:08 +00:00

68 lines
1.5 KiB
Dart

// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import "package:expect/expect.dart";
import "dart:collection";
class MyList extends ListBase {
List list;
MyList(this.list);
get length => list.length;
set length(value) {
list.length = value;
}
operator [](index) => list[index];
operator []=(index, val) {
list[index] = val;
}
toString() => list.toString();
}
void testWithoutModification(List list) {
var seen = [];
list.forEach(seen.add);
Expect.listEquals(list, seen);
}
void testWithModification(List list) {
if (list.isEmpty) return;
Expect.throws(() => list.forEach((_) => list.add(0)),
(e) => e is ConcurrentModificationError);
}
main() {
List fixedLengthList = new List.filled(10, null);
for (int i = 0; i < 10; i++) fixedLengthList[i] = i + 1;
List growableList = [];
growableList.length = 10;
for (int i = 0; i < 10; i++) growableList[i] = i + 1;
var growableLists = [
[],
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
new MyList([1, 2, 3, 4, 5]),
growableList,
];
var fixedLengthLists = [
const [],
fixedLengthList,
const [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
new MyList(const [1, 2]),
];
for (var list in growableLists) {
print(list);
testWithoutModification(list);
testWithModification(list);
}
for (var list in fixedLengthLists) {
testWithoutModification(list);
}
}