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

Side by Side Diff: test/dart_codegen/expect/core/list.dart

Issue 1121993004: Inference through conditional expressions (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Rebase Created 5 years, 7 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 part of dart.core; 1 part of dart.core;
2 @SupportJsExtensionMethod() @JsPeerInterface(name: 'Array') abstract class List <E> implements Iterable<E>, EfficientLength {external factory List([int length]) ; 2 @SupportJsExtensionMethod() @JsPeerInterface(name: 'Array') abstract class List <E> implements Iterable<E>, EfficientLength {external factory List([int length]) ;
3 external factory List.filled(int length, E fill); 3 external factory List.filled(int length, E fill);
4 external factory List.from(Iterable elements, { 4 external factory List.from(Iterable elements, {
5 bool growable : true} 5 bool growable : true}
6 ); 6 );
7 factory List.generate(int length, E generator(int index), { 7 factory List.generate(int length, E generator(int index), {
8 bool growable : true} 8 bool growable : true}
9 ) { 9 ) {
10 List<E> result; 10 List<E> result;
(...skipping 14 matching lines...) Expand all
25 } 25 }
26 Iterable<E> where(bool f(E element)) { 26 Iterable<E> where(bool f(E element)) {
27 return new IterableMixinWorkaround<E>().where(this, f); 27 return new IterableMixinWorkaround<E>().where(this, f);
28 } 28 }
29 Iterable expand(Iterable f(E element)) { 29 Iterable expand(Iterable f(E element)) {
30 return IterableMixinWorkaround.expand(this, f); 30 return IterableMixinWorkaround.expand(this, f);
31 } 31 }
32 void forEach(void f(E element)) { 32 void forEach(void f(E element)) {
33 int length = this.length; 33 int length = this.length;
34 for (int i = 0; i < length; i++) { 34 for (int i = 0; i < length; i++) {
35 f(((__x9) => DEVC$RT.cast(__x9, dynamic, E, "CompositeCast", """line 153, co lumn 9 of dart:core/list.dart: """, __x9 is E, false))(JS('', '#[#]', this, i))) ; 35 f(((__x8) => DEVC$RT.cast(__x8, dynamic, E, "CompositeCast", """line 153, co lumn 9 of dart:core/list.dart: """, __x8 is E, false))(JS('', '#[#]', this, i))) ;
36 if (length != this.length) { 36 if (length != this.length) {
37 throw new ConcurrentModificationError(this); 37 throw new ConcurrentModificationError(this);
38 } 38 }
39 } 39 }
40 } 40 }
41 Iterable map(f(E element)) { 41 Iterable map(f(E element)) {
42 return IterableMixinWorkaround.mapList(this, f); 42 return IterableMixinWorkaround.mapList(this, f);
43 } 43 }
44 String join([String separator = ""]) { 44 String join([String separator = ""]) {
45 var list = new List(this.length); 45 var list = new List(this.length);
46 for (int i = 0; i < this.length; i++) { 46 for (int i = 0; i < this.length; i++) {
47 list[i] = "${this[i]}"; 47 list[i] = "${this[i]}";
48 } 48 }
49 return ((__x10) => DEVC$RT.cast(__x10, dynamic, String, "DynamicCast", """lin e 169, column 12 of dart:core/list.dart: """, __x10 is String, true))(JS('String ', "#.join(#)", list, separator)); 49 return ((__x9) => DEVC$RT.cast(__x9, dynamic, String, "DynamicCast", """line 169, column 12 of dart:core/list.dart: """, __x9 is String, true))(JS('String', "#.join(#)", list, separator));
50 } 50 }
51 Iterable<E> take(int n) { 51 Iterable<E> take(int n) {
52 return new IterableMixinWorkaround<E>().takeList(this, n); 52 return new IterableMixinWorkaround<E>().takeList(this, n);
53 } 53 }
54 Iterable<E> takeWhile(bool test(E value)) { 54 Iterable<E> takeWhile(bool test(E value)) {
55 return new IterableMixinWorkaround<E>().takeWhile(this, test); 55 return new IterableMixinWorkaround<E>().takeWhile(this, test);
56 } 56 }
57 Iterable<E> skip(int n) { 57 Iterable<E> skip(int n) {
58 return new IterableMixinWorkaround<E>().skipList(this, n); 58 return new IterableMixinWorkaround<E>().skipList(this, n);
59 } 59 }
60 Iterable<E> skipWhile(bool test(E value)) { 60 Iterable<E> skipWhile(bool test(E value)) {
61 return new IterableMixinWorkaround<E>().skipWhile(this, test); 61 return new IterableMixinWorkaround<E>().skipWhile(this, test);
62 } 62 }
63 E reduce(E combine(E value, E element)) { 63 E reduce(E combine(E value, E element)) {
64 return ((__x11) => DEVC$RT.cast(__x11, dynamic, E, "CompositeCast", """line 18 9, column 12 of dart:core/list.dart: """, __x11 is E, false))(IterableMixinWorka round.reduce(this, combine)); 64 return ((__x10) => DEVC$RT.cast(__x10, dynamic, E, "CompositeCast", """line 18 9, column 12 of dart:core/list.dart: """, __x10 is E, false))(IterableMixinWorka round.reduce(this, combine));
65 } 65 }
66 fold(initialValue, combine(previousValue, E element)) { 66 fold(initialValue, combine(previousValue, E element)) {
67 return IterableMixinWorkaround.fold(this, initialValue, combine); 67 return IterableMixinWorkaround.fold(this, initialValue, combine);
68 } 68 }
69 E firstWhere(bool test(E value), { 69 E firstWhere(bool test(E value), {
70 E orElse()} 70 E orElse()}
71 ) { 71 ) {
72 return ((__x12) => DEVC$RT.cast(__x12, dynamic, E, "CompositeCast", """line 19 7, column 12 of dart:core/list.dart: """, __x12 is E, false))(IterableMixinWorka round.firstWhere(this, test, orElse)); 72 return ((__x11) => DEVC$RT.cast(__x11, dynamic, E, "CompositeCast", """line 19 7, column 12 of dart:core/list.dart: """, __x11 is E, false))(IterableMixinWorka round.firstWhere(this, test, orElse));
73 } 73 }
74 E lastWhere(bool test(E value), { 74 E lastWhere(bool test(E value), {
75 E orElse()} 75 E orElse()}
76 ) { 76 ) {
77 return ((__x13) => DEVC$RT.cast(__x13, dynamic, E, "CompositeCast", """line 20 1, column 12 of dart:core/list.dart: """, __x13 is E, false))(IterableMixinWorka round.lastWhereList(this, test, orElse)); 77 return ((__x12) => DEVC$RT.cast(__x12, dynamic, E, "CompositeCast", """line 20 1, column 12 of dart:core/list.dart: """, __x12 is E, false))(IterableMixinWorka round.lastWhereList(this, test, orElse));
78 } 78 }
79 E singleWhere(bool test(E value)) { 79 E singleWhere(bool test(E value)) {
80 return ((__x14) => DEVC$RT.cast(__x14, dynamic, E, "CompositeCast", """line 20 5, column 12 of dart:core/list.dart: """, __x14 is E, false))(IterableMixinWorka round.singleWhere(this, test)); 80 return ((__x13) => DEVC$RT.cast(__x13, dynamic, E, "CompositeCast", """line 20 5, column 12 of dart:core/list.dart: """, __x13 is E, false))(IterableMixinWorka round.singleWhere(this, test));
81 } 81 }
82 E elementAt(int index) { 82 E elementAt(int index) {
83 return this[index]; 83 return this[index];
84 } 84 }
85 E get first { 85 E get first {
86 if (length > 0) return this[0]; 86 if (length > 0) return this[0];
87 throw new StateError("No elements"); 87 throw new StateError("No elements");
88 } 88 }
89 E get last { 89 E get last {
90 if (length > 0) return this[length - 1]; 90 if (length > 0) return this[length - 1];
(...skipping 24 matching lines...) Expand all
115 ) { 115 ) {
116 if (growable) { 116 if (growable) {
117 return new JSArray<E>.markGrowable(JS('', '#.slice()', this)); 117 return new JSArray<E>.markGrowable(JS('', '#.slice()', this));
118 } 118 }
119 else { 119 else {
120 return new JSArray<E>.markFixed(JS('', '#.slice()', this)); 120 return new JSArray<E>.markFixed(JS('', '#.slice()', this));
121 } 121 }
122 } 122 }
123 Set<E> toSet() => new Set<E>.from(this); 123 Set<E> toSet() => new Set<E>.from(this);
124 Iterator<E> get iterator => new ListIterator<E>(this); 124 Iterator<E> get iterator => new ListIterator<E>(this);
125 int get hashCode => ((__x15) => DEVC$RT.cast(__x15, dynamic, int, "DynamicCast" , """line 262, column 23 of dart:core/list.dart: """, __x15 is int, true))(Primi tives.objectHashCode(this)); 125 int get hashCode => ((__x14) => DEVC$RT.cast(__x14, dynamic, int, "DynamicCast" , """line 262, column 23 of dart:core/list.dart: """, __x14 is int, true))(Primi tives.objectHashCode(this));
126 E operator [](int index) { 126 E operator [](int index) {
127 if (index is! int) throw new ArgumentError(index); 127 if (index is! int) throw new ArgumentError(index);
128 if (index >= length || index < 0) throw new RangeError.value(index); 128 if (index >= length || index < 0) throw new RangeError.value(index);
129 return ((__x16) => DEVC$RT.cast(__x16, dynamic, E, "CompositeCast", """line 2 73, column 12 of dart:core/list.dart: """, __x16 is E, false))(JS('var', '#[#]', this, index)); 129 return ((__x15) => DEVC$RT.cast(__x15, dynamic, E, "CompositeCast", """line 2 73, column 12 of dart:core/list.dart: """, __x15 is E, false))(JS('var', '#[#]', this, index));
130 } 130 }
131 void operator []=(int index, E value) { 131 void operator []=(int index, E value) {
132 checkMutable('indexed set'); 132 checkMutable('indexed set');
133 if (index is! int) throw new ArgumentError(index); 133 if (index is! int) throw new ArgumentError(index);
134 if (index >= length || index < 0) throw new RangeError.value(index); 134 if (index >= length || index < 0) throw new RangeError.value(index);
135 JS('void', r'#[#] = #', this, index, value); 135 JS('void', r'#[#] = #', this, index, value);
136 } 136 }
137 int get length => ((__x17) => DEVC$RT.cast(__x17, dynamic, int, "DynamicCast", """line 292, column 21 of dart:core/list.dart: """, __x17 is int, true))(JS('JSU Int32', r'#.length', this)); 137 int get length => ((__x16) => DEVC$RT.cast(__x16, dynamic, int, "DynamicCast", """line 292, column 21 of dart:core/list.dart: """, __x16 is int, true))(JS('JSU Int32', r'#.length', this));
138 void set length(int newLength) { 138 void set length(int newLength) {
139 if (newLength is! int) throw new ArgumentError(newLength); 139 if (newLength is! int) throw new ArgumentError(newLength);
140 if (newLength < 0) throw new RangeError.value(newLength); 140 if (newLength < 0) throw new RangeError.value(newLength);
141 checkGrowable('set length'); 141 checkGrowable('set length');
142 JS('void', r'#.length = #', this, newLength); 142 JS('void', r'#.length = #', this, newLength);
143 } 143 }
144 void add(E value) { 144 void add(E value) {
145 checkGrowable('add'); 145 checkGrowable('add');
146 JS('void', r'#.push(#)', this, value); 146 JS('void', r'#.push(#)', this, value);
147 } 147 }
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 } 191 }
192 } 192 }
193 return false; 193 return false;
194 } 194 }
195 E removeAt(int index) { 195 E removeAt(int index) {
196 if (index is! int) throw new ArgumentError(index); 196 if (index is! int) throw new ArgumentError(index);
197 if (index < 0 || index >= length) { 197 if (index < 0 || index >= length) {
198 throw new RangeError.value(index); 198 throw new RangeError.value(index);
199 } 199 }
200 checkGrowable('removeAt'); 200 checkGrowable('removeAt');
201 return ((__x18) => DEVC$RT.cast(__x18, dynamic, E, "CompositeCast", """line 5 24, column 12 of dart:core/list.dart: """, __x18 is E, false))(JS('var', r'#.spl ice(#, 1)[0]', this, index)); 201 return ((__x17) => DEVC$RT.cast(__x17, dynamic, E, "CompositeCast", """line 5 24, column 12 of dart:core/list.dart: """, __x17 is E, false))(JS('var', r'#.spl ice(#, 1)[0]', this, index));
202 } 202 }
203 E removeLast() { 203 E removeLast() {
204 checkGrowable('removeLast'); 204 checkGrowable('removeLast');
205 if (length == 0) throw new RangeError.value(-1); 205 if (length == 0) throw new RangeError.value(-1);
206 return ((__x19) => DEVC$RT.cast(__x19, dynamic, E, "CompositeCast", """line 5 35, column 12 of dart:core/list.dart: """, __x19 is E, false))(JS('var', r'#.pop ()', this)); 206 return ((__x18) => DEVC$RT.cast(__x18, dynamic, E, "CompositeCast", """line 5 35, column 12 of dart:core/list.dart: """, __x18 is E, false))(JS('var', r'#.pop ()', this));
207 } 207 }
208 void removeWhere(bool test(E element)) { 208 void removeWhere(bool test(E element)) {
209 IterableMixinWorkaround.removeWhereList(this, test); 209 IterableMixinWorkaround.removeWhereList(this, test);
210 } 210 }
211 void retainWhere(bool test(E element)) { 211 void retainWhere(bool test(E element)) {
212 IterableMixinWorkaround.removeWhereList(this, (E element) => !test(element)); 212 IterableMixinWorkaround.removeWhereList(this, (E element) => !test(element));
213 } 213 }
214 List<E> sublist(int start, [int end]) { 214 List<E> sublist(int start, [int end]) {
215 checkNull(start); 215 checkNull(start);
216 if (start is! int) throw new ArgumentError(start); 216 if (start is! int) throw new ArgumentError(start);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 IterableMixinWorkaround.fillRangeList(this, start, end, fillValue); 253 IterableMixinWorkaround.fillRangeList(this, start, end, fillValue);
254 } 254 }
255 void replaceRange(int start, int end, Iterable<E> replacement) { 255 void replaceRange(int start, int end, Iterable<E> replacement) {
256 checkGrowable('removeRange'); 256 checkGrowable('removeRange');
257 IterableMixinWorkaround.replaceRangeList(this, start, end, replacement); 257 IterableMixinWorkaround.replaceRangeList(this, start, end, replacement);
258 } 258 }
259 Map<int, E> asMap() { 259 Map<int, E> asMap() {
260 return new IterableMixinWorkaround<E>().asMapList(this); 260 return new IterableMixinWorkaround<E>().asMapList(this);
261 } 261 }
262 } 262 }
OLDNEW
« no previous file with comments | « test/dart_codegen/expect/core/iterable.dart ('k') | test/dart_codegen/expect/core/stopwatch.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698