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

Side by Side Diff: tests/compiler/dart2js/class_set_test.dart

Issue 1568213003: Add EnumSet. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 4 years, 11 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) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 // Test for iterators on for [SubclassNode]. 5 // Test for iterators on for [SubclassNode].
6 6
7 library class_set_test; 7 library class_set_test;
8 8
9 import 'package:expect/expect.dart'; 9 import 'package:expect/expect.dart';
10 import 'package:async_helper/async_helper.dart'; 10 import 'package:async_helper/async_helper.dart';
11 import 'type_test_helper.dart'; 11 import 'type_test_helper.dart';
12 import 'package:compiler/src/elements/elements.dart' 12 import 'package:compiler/src/elements/elements.dart'
13 show Element, ClassElement; 13 show Element, ClassElement;
14 import 'package:compiler/src/universe/class_set.dart'; 14 import 'package:compiler/src/universe/class_set.dart';
15 import 'package:compiler/src/util/enumset.dart';
15 import 'package:compiler/src/util/util.dart'; 16 import 'package:compiler/src/util/util.dart';
16 import 'package:compiler/src/world.dart'; 17 import 'package:compiler/src/world.dart';
17 18
18 void main() { 19 void main() {
19 asyncTest(() => TypeEnvironment.create(r""" 20 asyncTest(() => TypeEnvironment.create(r"""
20 /// A 21 /// A
21 /// / \ 22 /// / \
22 /// B C 23 /// B C
23 /// / /|\ 24 /// / /|\
24 /// D E F G 25 /// D E F G
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 } else { 125 } else {
125 Expect.isNotNull(foundStack, 126 Expect.isNotNull(foundStack,
126 "Expected non-null stack ${stack} in $sb."); 127 "Expected non-null stack ${stack} in $sb.");
127 Expect.listEquals(stack, foundStack, 128 Expect.listEquals(stack, foundStack,
128 "Expected stack ${stack}, " 129 "Expected stack ${stack}, "
129 "found ${foundStack} in $sb."); 130 "found ${foundStack} in $sb.");
130 } 131 }
131 } 132 }
132 133
133 iterator = new ClassHierarchyNodeIterable( 134 iterator = new ClassHierarchyNodeIterable(
134 world.getClassHierarchyNode(G)).iterator; 135 world.getClassHierarchyNode(G),
136 ClassHierarchyNode.ALL).iterator;
135 checkState(G, currentNode: null, stack: null); 137 checkState(G, currentNode: null, stack: null);
136 Expect.isNull(iterator.current); 138 Expect.isNull(iterator.current);
137 Expect.isTrue(iterator.moveNext()); 139 Expect.isTrue(iterator.moveNext());
138 checkState(G, currentNode: G, stack: []); 140 checkState(G, currentNode: G, stack: []);
139 Expect.equals(G, iterator.current); 141 Expect.equals(G, iterator.current);
140 Expect.isFalse(iterator.moveNext()); 142 Expect.isFalse(iterator.moveNext());
141 checkState(G, currentNode: null, stack: []); 143 checkState(G, currentNode: null, stack: []);
142 Expect.isNull(iterator.current); 144 Expect.isNull(iterator.current);
143 145
144 iterator = new ClassHierarchyNodeIterable( 146 iterator = new ClassHierarchyNodeIterable(
145 world.getClassHierarchyNode(G), 147 world.getClassHierarchyNode(G),
148 ClassHierarchyNode.ALL,
146 includeRoot: false).iterator; 149 includeRoot: false).iterator;
147 checkState(G, currentNode: null, stack: null); 150 checkState(G, currentNode: null, stack: null);
148 Expect.isNull(iterator.current); 151 Expect.isNull(iterator.current);
149 Expect.isFalse(iterator.moveNext()); 152 Expect.isFalse(iterator.moveNext());
150 checkState(G, currentNode: null, stack: []); 153 checkState(G, currentNode: null, stack: []);
151 Expect.isNull(iterator.current); 154 Expect.isNull(iterator.current);
152 155
153 iterator = new ClassHierarchyNodeIterable( 156 iterator = new ClassHierarchyNodeIterable(
154 world.getClassHierarchyNode(C)).iterator; 157 world.getClassHierarchyNode(C),
158 ClassHierarchyNode.ALL).iterator;
155 checkState(C, currentNode: null, stack: null); 159 checkState(C, currentNode: null, stack: null);
156 Expect.isNull(iterator.current); 160 Expect.isNull(iterator.current);
157 Expect.isTrue(iterator.moveNext()); 161 Expect.isTrue(iterator.moveNext());
158 checkState(C, currentNode: C, stack: [E, F, G]); 162 checkState(C, currentNode: C, stack: [E, F, G]);
159 Expect.equals(C, iterator.current); 163 Expect.equals(C, iterator.current);
160 Expect.isTrue(iterator.moveNext()); 164 Expect.isTrue(iterator.moveNext());
161 checkState(C, currentNode: E, stack: [F, G]); 165 checkState(C, currentNode: E, stack: [F, G]);
162 Expect.equals(E, iterator.current); 166 Expect.equals(E, iterator.current);
163 Expect.isTrue(iterator.moveNext()); 167 Expect.isTrue(iterator.moveNext());
164 checkState(C, currentNode: F, stack: [G]); 168 checkState(C, currentNode: F, stack: [G]);
165 Expect.equals(F, iterator.current); 169 Expect.equals(F, iterator.current);
166 Expect.isTrue(iterator.moveNext()); 170 Expect.isTrue(iterator.moveNext());
167 checkState(C, currentNode: G, stack: []); 171 checkState(C, currentNode: G, stack: []);
168 Expect.equals(G, iterator.current); 172 Expect.equals(G, iterator.current);
169 Expect.isFalse(iterator.moveNext()); 173 Expect.isFalse(iterator.moveNext());
170 checkState(C, currentNode: null, stack: []); 174 checkState(C, currentNode: null, stack: []);
171 Expect.isNull(iterator.current); 175 Expect.isNull(iterator.current);
172 176
173 iterator = new ClassHierarchyNodeIterable( 177 iterator = new ClassHierarchyNodeIterable(
174 world.getClassHierarchyNode(D)).iterator; 178 world.getClassHierarchyNode(D),
179 ClassHierarchyNode.ALL).iterator;
175 checkState(D, currentNode: null, stack: null); 180 checkState(D, currentNode: null, stack: null);
176 Expect.isNull(iterator.current); 181 Expect.isNull(iterator.current);
177 Expect.isTrue(iterator.moveNext()); 182 Expect.isTrue(iterator.moveNext());
178 checkState(D, currentNode: D, stack: []); 183 checkState(D, currentNode: D, stack: []);
179 Expect.equals(D, iterator.current); 184 Expect.equals(D, iterator.current);
180 Expect.isFalse(iterator.moveNext()); 185 Expect.isFalse(iterator.moveNext());
181 checkState(D, currentNode: null, stack: []); 186 checkState(D, currentNode: null, stack: []);
182 Expect.isNull(iterator.current); 187 Expect.isNull(iterator.current);
183 188
184 iterator = new ClassHierarchyNodeIterable( 189 iterator = new ClassHierarchyNodeIterable(
185 world.getClassHierarchyNode(B)).iterator; 190 world.getClassHierarchyNode(B),
191 ClassHierarchyNode.ALL).iterator;
186 checkState(B, currentNode: null, stack: null); 192 checkState(B, currentNode: null, stack: null);
187 Expect.isNull(iterator.current); 193 Expect.isNull(iterator.current);
188 Expect.isTrue(iterator.moveNext()); 194 Expect.isTrue(iterator.moveNext());
189 checkState(B, currentNode: B, stack: [D]); 195 checkState(B, currentNode: B, stack: [D]);
190 Expect.equals(B, iterator.current); 196 Expect.equals(B, iterator.current);
191 Expect.isTrue(iterator.moveNext()); 197 Expect.isTrue(iterator.moveNext());
192 checkState(B, currentNode: D, stack: []); 198 checkState(B, currentNode: D, stack: []);
193 Expect.equals(D, iterator.current); 199 Expect.equals(D, iterator.current);
194 Expect.isFalse(iterator.moveNext()); 200 Expect.isFalse(iterator.moveNext());
195 checkState(B, currentNode: null, stack: []); 201 checkState(B, currentNode: null, stack: []);
196 Expect.isNull(iterator.current); 202 Expect.isNull(iterator.current);
197 203
198 iterator = new ClassHierarchyNodeIterable( 204 iterator = new ClassHierarchyNodeIterable(
199 world.getClassHierarchyNode(B), 205 world.getClassHierarchyNode(B),
206 ClassHierarchyNode.ALL,
200 includeRoot: false).iterator; 207 includeRoot: false).iterator;
201 checkState(B, currentNode: null, stack: null); 208 checkState(B, currentNode: null, stack: null);
202 Expect.isNull(iterator.current); 209 Expect.isNull(iterator.current);
203 Expect.isTrue(iterator.moveNext()); 210 Expect.isTrue(iterator.moveNext());
204 checkState(B, currentNode: D, stack: []); 211 checkState(B, currentNode: D, stack: []);
205 Expect.equals(D, iterator.current); 212 Expect.equals(D, iterator.current);
206 Expect.isFalse(iterator.moveNext()); 213 Expect.isFalse(iterator.moveNext());
207 checkState(B, currentNode: null, stack: []); 214 checkState(B, currentNode: null, stack: []);
208 Expect.isNull(iterator.current); 215 Expect.isNull(iterator.current);
209 216
210 iterator = new ClassHierarchyNodeIterable( 217 iterator = new ClassHierarchyNodeIterable(
211 world.getClassHierarchyNode(B), 218 world.getClassHierarchyNode(B),
212 includeIndirectlyInstantiated: false).iterator; 219 new EnumSet<Instantiation>.fromValues(<Instantiation>[
220 Instantiation.DIRECTLY_INSTANTIATED,
221 Instantiation.UNINSTANTIATED])).iterator;
213 checkState(B, currentNode: null, stack: null); 222 checkState(B, currentNode: null, stack: null);
214 Expect.isNull(iterator.current); 223 Expect.isNull(iterator.current);
215 Expect.isTrue(iterator.moveNext()); 224 Expect.isTrue(iterator.moveNext());
216 checkState(B, currentNode: D, stack: []); 225 checkState(B, currentNode: D, stack: []);
217 Expect.equals(D, iterator.current); 226 Expect.equals(D, iterator.current);
218 Expect.isFalse(iterator.moveNext()); 227 Expect.isFalse(iterator.moveNext());
219 checkState(B, currentNode: null, stack: []); 228 checkState(B, currentNode: null, stack: []);
220 Expect.isNull(iterator.current); 229 Expect.isNull(iterator.current);
221 230
222 iterator = new ClassHierarchyNodeIterable( 231 iterator = new ClassHierarchyNodeIterable(
223 world.getClassHierarchyNode(A)).iterator; 232 world.getClassHierarchyNode(A),
233 ClassHierarchyNode.ALL).iterator;
224 checkState(A, currentNode: null, stack: null); 234 checkState(A, currentNode: null, stack: null);
225 Expect.isNull(iterator.current); 235 Expect.isNull(iterator.current);
226 Expect.isTrue(iterator.moveNext()); 236 Expect.isTrue(iterator.moveNext());
227 checkState(A, currentNode: A, stack: [C, B]); 237 checkState(A, currentNode: A, stack: [C, B]);
228 Expect.equals(A, iterator.current); 238 Expect.equals(A, iterator.current);
229 Expect.isTrue(iterator.moveNext()); 239 Expect.isTrue(iterator.moveNext());
230 checkState(A, currentNode: C, stack: [E, F, G, B]); 240 checkState(A, currentNode: C, stack: [E, F, G, B]);
231 Expect.equals(C, iterator.current); 241 Expect.equals(C, iterator.current);
232 Expect.isTrue(iterator.moveNext()); 242 Expect.isTrue(iterator.moveNext());
233 checkState(A, currentNode: E, stack: [F, G, B]); 243 checkState(A, currentNode: E, stack: [F, G, B]);
234 Expect.equals(E, iterator.current); 244 Expect.equals(E, iterator.current);
235 Expect.isTrue(iterator.moveNext()); 245 Expect.isTrue(iterator.moveNext());
236 checkState(A, currentNode: F, stack: [G, B]); 246 checkState(A, currentNode: F, stack: [G, B]);
237 Expect.equals(F, iterator.current); 247 Expect.equals(F, iterator.current);
238 Expect.isTrue(iterator.moveNext()); 248 Expect.isTrue(iterator.moveNext());
239 checkState(A, currentNode: G, stack: [B]); 249 checkState(A, currentNode: G, stack: [B]);
240 Expect.equals(G, iterator.current); 250 Expect.equals(G, iterator.current);
241 Expect.isTrue(iterator.moveNext()); 251 Expect.isTrue(iterator.moveNext());
242 checkState(A, currentNode: B, stack: [D]); 252 checkState(A, currentNode: B, stack: [D]);
243 Expect.equals(B, iterator.current); 253 Expect.equals(B, iterator.current);
244 Expect.isTrue(iterator.moveNext()); 254 Expect.isTrue(iterator.moveNext());
245 checkState(A, currentNode: D, stack: []); 255 checkState(A, currentNode: D, stack: []);
246 Expect.equals(D, iterator.current); 256 Expect.equals(D, iterator.current);
247 Expect.isFalse(iterator.moveNext()); 257 Expect.isFalse(iterator.moveNext());
248 checkState(A, currentNode: null, stack: []); 258 checkState(A, currentNode: null, stack: []);
249 Expect.isNull(iterator.current); 259 Expect.isNull(iterator.current);
250 260
251 iterator = new ClassHierarchyNodeIterable( 261 iterator = new ClassHierarchyNodeIterable(
252 world.getClassHierarchyNode(A), 262 world.getClassHierarchyNode(A),
263 ClassHierarchyNode.ALL,
253 includeRoot: false).iterator; 264 includeRoot: false).iterator;
254 checkState(A, currentNode: null, stack: null); 265 checkState(A, currentNode: null, stack: null);
255 Expect.isNull(iterator.current); 266 Expect.isNull(iterator.current);
256 Expect.isTrue(iterator.moveNext()); 267 Expect.isTrue(iterator.moveNext());
257 checkState(A, currentNode: C, stack: [E, F, G, B]); 268 checkState(A, currentNode: C, stack: [E, F, G, B]);
258 Expect.equals(C, iterator.current); 269 Expect.equals(C, iterator.current);
259 Expect.isTrue(iterator.moveNext()); 270 Expect.isTrue(iterator.moveNext());
260 checkState(A, currentNode: E, stack: [F, G, B]); 271 checkState(A, currentNode: E, stack: [F, G, B]);
261 Expect.equals(E, iterator.current); 272 Expect.equals(E, iterator.current);
262 Expect.isTrue(iterator.moveNext()); 273 Expect.isTrue(iterator.moveNext());
263 checkState(A, currentNode: F, stack: [G, B]); 274 checkState(A, currentNode: F, stack: [G, B]);
264 Expect.equals(F, iterator.current); 275 Expect.equals(F, iterator.current);
265 Expect.isTrue(iterator.moveNext()); 276 Expect.isTrue(iterator.moveNext());
266 checkState(A, currentNode: G, stack: [B]); 277 checkState(A, currentNode: G, stack: [B]);
267 Expect.equals(G, iterator.current); 278 Expect.equals(G, iterator.current);
268 Expect.isTrue(iterator.moveNext()); 279 Expect.isTrue(iterator.moveNext());
269 checkState(A, currentNode: B, stack: [D]); 280 checkState(A, currentNode: B, stack: [D]);
270 Expect.equals(B, iterator.current); 281 Expect.equals(B, iterator.current);
271 Expect.isTrue(iterator.moveNext()); 282 Expect.isTrue(iterator.moveNext());
272 checkState(A, currentNode: D, stack: []); 283 checkState(A, currentNode: D, stack: []);
273 Expect.equals(D, iterator.current); 284 Expect.equals(D, iterator.current);
274 Expect.isFalse(iterator.moveNext()); 285 Expect.isFalse(iterator.moveNext());
275 checkState(A, currentNode: null, stack: []); 286 checkState(A, currentNode: null, stack: []);
276 Expect.isNull(iterator.current); 287 Expect.isNull(iterator.current);
277 288
278 iterator = new ClassHierarchyNodeIterable( 289 iterator = new ClassHierarchyNodeIterable(
279 world.getClassHierarchyNode(A), 290 world.getClassHierarchyNode(A),
280 includeIndirectlyInstantiated: false).iterator; 291 new EnumSet<Instantiation>.fromValues(<Instantiation>[
292 Instantiation.DIRECTLY_INSTANTIATED,
293 Instantiation.UNINSTANTIATED])).iterator;
281 checkState(A, currentNode: null, stack: null); 294 checkState(A, currentNode: null, stack: null);
282 Expect.isNull(iterator.current); 295 Expect.isNull(iterator.current);
283 Expect.isTrue(iterator.moveNext()); 296 Expect.isTrue(iterator.moveNext());
284 checkState(A, currentNode: A, stack: [C, B]); 297 checkState(A, currentNode: A, stack: [C, B]);
285 Expect.equals(A, iterator.current); 298 Expect.equals(A, iterator.current);
286 Expect.isTrue(iterator.moveNext()); 299 Expect.isTrue(iterator.moveNext());
287 checkState(A, currentNode: C, stack: [E, F, G, B]); 300 checkState(A, currentNode: C, stack: [E, F, G, B]);
288 Expect.equals(C, iterator.current); 301 Expect.equals(C, iterator.current);
289 Expect.isTrue(iterator.moveNext()); 302 Expect.isTrue(iterator.moveNext());
290 checkState(A, currentNode: E, stack: [F, G, B]); 303 checkState(A, currentNode: E, stack: [F, G, B]);
291 Expect.equals(E, iterator.current); 304 Expect.equals(E, iterator.current);
292 Expect.isTrue(iterator.moveNext()); 305 Expect.isTrue(iterator.moveNext());
293 checkState(A, currentNode: F, stack: [G, B]); 306 checkState(A, currentNode: F, stack: [G, B]);
294 Expect.equals(F, iterator.current); 307 Expect.equals(F, iterator.current);
295 Expect.isTrue(iterator.moveNext()); 308 Expect.isTrue(iterator.moveNext());
296 checkState(A, currentNode: G, stack: [B]); 309 checkState(A, currentNode: G, stack: [B]);
297 Expect.equals(G, iterator.current); 310 Expect.equals(G, iterator.current);
298 Expect.isTrue(iterator.moveNext()); 311 Expect.isTrue(iterator.moveNext());
299 checkState(A, currentNode: D, stack: []); 312 checkState(A, currentNode: D, stack: []);
300 Expect.equals(D, iterator.current); 313 Expect.equals(D, iterator.current);
301 Expect.isFalse(iterator.moveNext()); 314 Expect.isFalse(iterator.moveNext());
302 checkState(A, currentNode: null, stack: []); 315 checkState(A, currentNode: null, stack: []);
303 Expect.isNull(iterator.current); 316 Expect.isNull(iterator.current);
304 317
305 iterator = new ClassHierarchyNodeIterable( 318 iterator = new ClassHierarchyNodeIterable(
306 world.getClassHierarchyNode(A), 319 world.getClassHierarchyNode(A),
307 includeRoot: false, 320 new EnumSet<Instantiation>.fromValues(<Instantiation>[
308 includeIndirectlyInstantiated: false).iterator; 321 Instantiation.DIRECTLY_INSTANTIATED,
322 Instantiation.UNINSTANTIATED]),
323 includeRoot: false).iterator;
309 checkState(A, currentNode: null, stack: null); 324 checkState(A, currentNode: null, stack: null);
310 Expect.isNull(iterator.current); 325 Expect.isNull(iterator.current);
311 Expect.isTrue(iterator.moveNext()); 326 Expect.isTrue(iterator.moveNext());
312 checkState(A, currentNode: C, stack: [E, F, G, B]); 327 checkState(A, currentNode: C, stack: [E, F, G, B]);
313 Expect.equals(C, iterator.current); 328 Expect.equals(C, iterator.current);
314 Expect.isTrue(iterator.moveNext()); 329 Expect.isTrue(iterator.moveNext());
315 checkState(A, currentNode: E, stack: [F, G, B]); 330 checkState(A, currentNode: E, stack: [F, G, B]);
316 Expect.equals(E, iterator.current); 331 Expect.equals(E, iterator.current);
317 Expect.isTrue(iterator.moveNext()); 332 Expect.isTrue(iterator.moveNext());
318 checkState(A, currentNode: F, stack: [G, B]); 333 checkState(A, currentNode: F, stack: [G, B]);
319 Expect.equals(F, iterator.current); 334 Expect.equals(F, iterator.current);
320 Expect.isTrue(iterator.moveNext()); 335 Expect.isTrue(iterator.moveNext());
321 checkState(A, currentNode: G, stack: [B]); 336 checkState(A, currentNode: G, stack: [B]);
322 Expect.equals(G, iterator.current); 337 Expect.equals(G, iterator.current);
323 Expect.isTrue(iterator.moveNext()); 338 Expect.isTrue(iterator.moveNext());
324 checkState(A, currentNode: D, stack: []); 339 checkState(A, currentNode: D, stack: []);
325 Expect.equals(D, iterator.current); 340 Expect.equals(D, iterator.current);
326 Expect.isFalse(iterator.moveNext()); 341 Expect.isFalse(iterator.moveNext());
327 checkState(A, currentNode: null, stack: []); 342 checkState(A, currentNode: null, stack: []);
328 Expect.isNull(iterator.current); 343 Expect.isNull(iterator.current);
329 })); 344 }));
330 } 345 }
346
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698