| Index: tests/corelib/list_test.dart
|
| diff --git a/tests/corelib/list_test.dart b/tests/corelib/list_test.dart
|
| index 5187ee84ccce4cb210548b52923e1db406914798..e8756a2e2c9b6846c82b90d722d2e4cb64015cf4 100644
|
| --- a/tests/corelib/list_test.dart
|
| +++ b/tests/corelib/list_test.dart
|
| @@ -45,6 +45,12 @@ void main() {
|
| testTypedGrowableList(new Uint32List(0).toList());
|
| testTypedGrowableList(new Int32List(0).toList());
|
|
|
| + // Lists based on ListBase and ListMixin.
|
| + testGrowableList(new BaseList());
|
| + testGrowableList(new BaseList().toList());
|
| + testGrowableList(new MixinList());
|
| + testGrowableList(new MixinList().toList());
|
| +
|
| testListConstructor();
|
| }
|
|
|
| @@ -70,6 +76,23 @@ void testTypedLengthInvariantOperations(List list) {
|
| list[i] = i;
|
| }
|
|
|
| + // last=
|
| + Expect.listEquals([0, 1, 2, 3], list);
|
| + list.last = 47;
|
| + Expect.listEquals([0, 1, 2, 47], list);
|
| + list.last -= 5;
|
| + Expect.listEquals([0, 1, 2, 42], list);
|
| + list.last++;
|
| + Expect.listEquals([0, 1, 2, 43], list);
|
| + ++list.last;
|
| + Expect.listEquals([0, 1, 2, 44], list);
|
| + list.last--;
|
| + Expect.listEquals([0, 1, 2, 43], list);
|
| + --list.last;
|
| + Expect.listEquals([0, 1, 2, 42], list);
|
| + list.last = 3;
|
| + Expect.listEquals([0, 1, 2, 3], list);
|
| +
|
| // indexOf, lastIndexOf
|
| for (int i = 0; i < 4; i++) {
|
| Expect.equals(i, list[i]);
|
| @@ -504,3 +527,15 @@ void testListConstructor() {
|
| Expect.throws(() { new List.filled(-2, 42); }); // Not negative.
|
| Expect.throws(() { new List.filled(null, 42); }); // Not null.
|
| }
|
| +
|
| +abstract class ListImpl<E>{
|
| + List _base = [];
|
| + int get length => _base.length;
|
| + void set length(int length) { _base.length = length; }
|
| + E operator[](int index) => _base[index];
|
| + void operator[]=(int index, E value) { _base[index] = value; }
|
| +}
|
| +
|
| +class BaseList<E> = ListBase<E> with ListImpl<E>;
|
| +
|
| +class MixinList<E> = ListImpl<E> with ListMixin<E>;
|
|
|