Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Side by Side Diff: tests/lib_strong/collection/list_test.dart

Issue 2979353002: implement `Invocation.typeArguments` in DDC (Closed)
Patch Set: fix Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 import 'dart:collection'; 5 import 'dart:collection';
6 import "package:expect/expect.dart"; 6 import "package:expect/expect.dart";
7 7
8 class MyList<E> extends Object with ListMixin<E> implements List<E> { 8 class MyList<E> extends Object with ListMixin<E> implements List<E> {
9 List<E> _list; 9 List<E> _list;
10 10
(...skipping 13 matching lines...) Expand all
24 } 24 }
25 25
26 class MyNoSuchMethodList<E> extends Object 26 class MyNoSuchMethodList<E> extends Object
27 with ListMixin<E> 27 with ListMixin<E>
28 implements List<E> { 28 implements List<E> {
29 List<E> _list; 29 List<E> _list;
30 30
31 MyNoSuchMethodList(List<E> this._list); 31 MyNoSuchMethodList(List<E> this._list);
32 32
33 noSuchMethod(Invocation invocation) { 33 noSuchMethod(Invocation invocation) {
34 if (invocation.memberName == #length) { 34 if (invocation.memberName == #length && invocation.isGetter) {
35 if (invocation.isGetter) return _list.length; 35 return _list.length;
36 if (invocation.isSetter) { 36 }
37 _list.length = invocation.positionalArguments.first; 37 if (invocation.memberName == new Symbol("length=") && invocation.isSetter) {
38 return null; 38 _list.length = invocation.positionalArguments.first;
39 } 39 return null;
40 return super.noSuchMethod(invocation);
41 } 40 }
42 if (invocation.memberName == new Symbol("[]") && 41 if (invocation.memberName == new Symbol("[]") &&
43 invocation.positionalArguments.length == 1) { 42 invocation.positionalArguments.length == 1) {
44 return _list[invocation.positionalArguments.first]; 43 return _list[invocation.positionalArguments.first];
45 } 44 }
46 if (invocation.memberName == new Symbol("[]=") && 45 if (invocation.memberName == new Symbol("[]=") &&
47 invocation.positionalArguments.length == 2) { 46 invocation.positionalArguments.length == 2) {
48 _list[invocation.positionalArguments.first] = 47 _list[invocation.positionalArguments.first] =
49 invocation.positionalArguments[1]; 48 invocation.positionalArguments[1];
50 return null; 49 return null;
51 } 50 }
52 return super.noSuchMethod(invocation); 51 return super.noSuchMethod(invocation);
53 } 52 }
54 } 53 }
55 54
56 // Class that behaves like a list but does not implement List. 55 // Class that behaves like a list but does not implement List.
57 class MyIndexableNoSuchMethod<E> { 56 class MyIndexableNoSuchMethod<E> {
58 List<E> _list; 57 List<E> _list;
59 58
60 MyIndexableNoSuchMethod(List<E> this._list); 59 MyIndexableNoSuchMethod(List<E> this._list);
61 60
62 noSuchMethod(Invocation invocation) { 61 noSuchMethod(Invocation invocation) {
63 if (invocation.memberName == #length) { 62 if (invocation.memberName == #length && invocation.isGetter) {
64 if (invocation.isGetter) return _list.length; 63 return _list.length;
65 if (invocation.isSetter) { 64 }
66 _list.length = invocation.positionalArguments.first; 65 if (invocation.memberName == new Symbol("length=") && invocation.isSetter) {
67 return null; 66 _list.length = invocation.positionalArguments.first;
68 } 67 return null;
69 return super.noSuchMethod(invocation);
70 } 68 }
71 if (invocation.memberName == new Symbol("prototype")) { 69 if (invocation.memberName == new Symbol("prototype")) {
72 return 42; 70 return 42;
73 } 71 }
74 72
75 if (invocation.memberName == new Symbol("[]") && 73 if (invocation.memberName == new Symbol("[]") &&
76 invocation.positionalArguments.length == 1) { 74 invocation.positionalArguments.length == 1) {
77 return _list[invocation.positionalArguments.first]; 75 return _list[invocation.positionalArguments.first];
78 } 76 }
79 if (invocation.memberName == new Symbol("[]=") && 77 if (invocation.memberName == new Symbol("[]=") &&
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 Expect.equals(3, indexable[2]); 144 Expect.equals(3, indexable[2]);
147 indexable.length = 2; 145 indexable.length = 2;
148 Expect.equals(2, indexable.length); 146 Expect.equals(2, indexable.length);
149 Expect.equals(42, indexable.prototype); 147 Expect.equals(42, indexable.prototype);
150 } 148 }
151 } 149 }
152 150
153 void main() { 151 void main() {
154 testRetainWhere(); 152 testRetainWhere();
155 } 153 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698