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

Side by Side Diff: tests/language_strong/field_override5_test.dart

Issue 2691433004: Support virtual fields in DDC without requiring the @virtual annotation.
Patch Set: Created 3 years, 10 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
(Empty)
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
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.
4
5 import "package:expect/expect.dart";
6 import "package:meta/meta.dart";
7
8 class A {
9 get x0_ => 1;
10
11 @virtual
12 var x1 = 1;
13 get x1_ => 1;
14
15 @virtual
16 var x2 = 1;
17 get x2_ => 1;
18
19 get x3 => 1;
20 get x3_ => 1;
21
22 @virtual
23 var x4 = 1;
24 get x4_ => 1;
25
26 @virtual
27 var x5 = 1;
28 get x5_ => 1;
29
30 @virtual
31 var x6 = 1;
32 get x6_ => 1;
33
34 get x7 => 1;
35 get x7_ => 1;
36
37 get x8 => 1;
38 get x8_ => 1;
39
40 get x9 => 1;
41 get x9_ => 1;
42
43 var xA = 1;
44 get xA_ => 1;
45
46 get xB => xA;
47 get xB_ => 1;
48
49 var xC = 1;
50 get xC_ => 1;
51 get xD => xC;
52 get xD_ => 1;
53
54 @virtual
55 var xE = 1;
56 get xE_ => 1;
57 get xF => xE;
58 get xF_ => 1;
59
60 @virtual
61 var xG = 1;
62 get xG_ => 1;
63 get xH => xG;
64 get xH_ => 1;
65
66 get xI => 1;
67 get xI_ => 1;
68 get xJ => xI;
69 get xJ_ => 1;
70
71 get xK => 1;
72 get xK_ => 1;
73 get xL => xK;
74 get xL_ => 1;
75
76 @virtual
77 var xM = 1;
78 static setXM(o) {
79 o.xM = 9;
80 }
81
82 get xM_before => 1;
83 get xM_after => 9;
84
85 @virtual
86 var xN = 1;
87 static setXN(o) {
88 o.xN = 9;
89 }
90
91 get xN_before => 1;
92 get xN_after => 9;
93
94 @virtual
95 var xO = 1;
96 static setXO(o) {
97 o.xO = 9;
98 }
99
100 get xO_before => 1;
101 get xO_after => 9;
102
103 @virtual
104 var xP = 1;
105 static setXP(o) {
106 o.xP = 9;
107 }
108
109 get xP_before => 1;
110 get xP_after => 9;
111
112 @virtual
113 var xQ1 = 11;
114 @virtual
115 var xQ2 = 12;
116 static setXQ1(o) {
117 o.xQ1 = 91;
118 }
119
120 static setXQ2(o) {
121 o.xQ2 = 92;
122 }
123
124 get xQ1_before => 11;
125 get xQ2_before => 12;
126 get xQ1_after => 91;
127 get xQ2_after => 92;
128
129 @virtual
130 var xR1 = 11;
131 @virtual
132 var xR2 = 12;
133 get xR3 => xR1;
134 static setXR1(o) {
135 o.xR1 = 91;
136 }
137
138 static setXR2(o) {
139 o.xR2 = 92;
140 }
141
142 get xR1_before => 11;
143 get xR2_before => 12;
144 get xR3_before => 11;
145 get xR1_after => 91;
146 get xR2_after => 92;
147 get xR3_after => 91;
148 }
149
150 class B extends A {
151 get x0_ => 2;
152
153 var x1 = 2;
154 get x1_ => 2;
155
156 get x2 => 2;
157 get x2_ => 2;
158
159 var x3 = 2;
160 get x3_ => 2;
161
162 @virtual
163 var x4 = 2;
164 get x4_ => 2;
165
166 get x5 => 2;
167 get x5_ => 2;
168
169 get x6 => 2;
170 get x6_ => 2;
171
172 get x7 => 2;
173 get x7_ => 2;
174
175 get x8 => super.x8;
176 get x8_ => 1;
177
178 get x9 => super.x9 + 1;
179 get x9_ => 2;
180
181 get xA_ => 1;
182 get xB_ => 1;
183
184 get xC_ => 1;
185 get xD => super.xC + 1;
186 get xD_ => 2;
187
188 get xE_ => 1;
189 get xF => super.xE + 1;
190 get xF_ => 2;
191
192 get xG_ => 1;
193 get xH => super.xG + 1;
194 get xH_ => 2;
195
196 get xI_ => 1;
197 get xJ => super.xI + 1;
198 get xJ_ => 2;
199
200 get xK_ => 1;
201 get xL => super.xK + 1;
202 get xL_ => 2;
203
204 set xM(v) {}
205 get xM_before => 1;
206 get xM_after => 1;
207
208 set xN(v) {
209 super.xN = v;
210 }
211
212 get xN_before => 1;
213 get xN_after => 9;
214
215 set xO(v) {
216 super.xO = v;
217 }
218
219 get xO_before => 1;
220 get xO_after => 9;
221
222 set xP(v) {
223 super.xP = v;
224 }
225
226 get xP_before => 1;
227 get xP_after => 9;
228
229 set xQ2(v) {
230 super.xQ1 = v;
231 }
232
233 get xQ1_before => 11;
234 get xQ2_before => 12;
235 get xQ1_after => 92;
236 get xQ2_after => 12;
237
238 set xR2(v) {
239 super.xR1 = v;
240 }
241
242 get xR3 => super.xR1;
243 get xR1_before => 11;
244 get xR2_before => 12;
245 get xR3_before => 11;
246 get xR1_after => 92;
247 get xR2_after => 12;
248 get xR3_after => 92;
249 }
250
251 class C extends B {
252 get x0_ => 3;
253 get x1_ => 2;
254 get x2_ => 2;
255 get x3_ => 2;
256
257 var x4 = 3;
258 get x4_ => 3;
259
260 var x5 = 3;
261 get x5_ => 3;
262
263 get x6 => 3;
264 get x6_ => 3;
265
266 var x7 = 3;
267 get x7_ => 3;
268
269 get x8_ => 1;
270
271 get x9 => super.x9 + 1;
272 get x9_ => 3;
273
274 get xA_ => 1;
275 get xB_ => 1;
276
277 get xC_ => 1;
278 get xD_ => 2;
279
280 get xE => 3;
281 get xE_ => 3;
282 get xF_ => 2;
283
284 var xG = 3;
285 get xG_ => 3;
286 get xH_ => 2;
287
288 get xI => 3;
289 get xI_ => 3;
290 get xJ_ => 2;
291
292 var xK = 3;
293 get xK_ => 3;
294 get xL_ => 2;
295
296 get xM_before => 1;
297 get xM_after => 1;
298
299 get xN_before => 1;
300 get xN_after => 9;
301
302 set xO(v) {
303 super.xO = v;
304 }
305
306 get xO_before => 1;
307 get xO_after => 9;
308
309 var xP = 3;
310 get xP_before => 3;
311 get xP_after => 9;
312
313 set xQ1(v) {
314 super.xQ1 = v;
315 }
316
317 set xQ2(v) {
318 super.xQ2 = v;
319 }
320
321 get xQ1_before => 11;
322 get xQ2_before => 12;
323 get xQ1_after => 92;
324 get xQ2_after => 12;
325
326 var xR1 = 3;
327 get xR1_before => 3;
328 get xR2_before => 12;
329 get xR3_before => 11;
330 get xR1_after => 91;
331 get xR2_after => 12;
332 get xR3_after => 92;
333 }
334
335 main() {
336 var a = new A();
337 var b = new B();
338 var c = new C();
339
340 // Need to make sure that at least the getter override works.
341 Expect.equals(1, a.x0_);
342 Expect.equals(2, b.x0_);
343 Expect.equals(3, c.x0_);
344
345 Expect.equals(a.x1_, a.x1);
346 Expect.equals(b.x1_, b.x1);
347 Expect.equals(c.x1_, c.x1);
348
349 Expect.equals(a.x2_, a.x2);
350 Expect.equals(b.x2_, b.x2);
351 Expect.equals(c.x2_, c.x2);
352
353 Expect.equals(a.x3_, a.x3);
354 Expect.equals(b.x3_, b.x3);
355 Expect.equals(c.x3_, c.x3);
356
357 Expect.equals(a.x4_, a.x4);
358 Expect.equals(b.x4_, b.x4);
359 Expect.equals(c.x4_, c.x4);
360
361 Expect.equals(a.x5_, a.x5);
362 Expect.equals(b.x5_, b.x5);
363 Expect.equals(c.x5_, c.x5);
364
365 Expect.equals(a.x6_, a.x6);
366 Expect.equals(b.x6_, b.x6);
367 Expect.equals(c.x6_, c.x6);
368
369 Expect.equals(a.x7_, a.x7);
370 Expect.equals(b.x7_, b.x7);
371 Expect.equals(c.x7_, c.x7);
372
373 Expect.equals(a.x8_, a.x8);
374 Expect.equals(b.x8_, b.x8);
375 Expect.equals(c.x8_, c.x8);
376
377 Expect.equals(a.x9_, a.x9);
378 Expect.equals(b.x9_, b.x9);
379 Expect.equals(c.x9_, c.x9);
380
381 Expect.equals(a.xA_, a.xA);
382 Expect.equals(b.xA_, b.xA);
383 Expect.equals(c.xA_, c.xA);
384
385 Expect.equals(a.xB_, a.xB);
386 Expect.equals(b.xB_, b.xB);
387 Expect.equals(c.xB_, c.xB);
388
389 Expect.equals(a.xC_, a.xC);
390 Expect.equals(b.xC_, b.xC);
391 Expect.equals(c.xC_, c.xC);
392
393 Expect.equals(a.xD_, a.xD);
394 Expect.equals(b.xD_, b.xD);
395 Expect.equals(c.xD_, c.xD);
396
397 Expect.equals(a.xE_, a.xE);
398 Expect.equals(b.xE_, b.xE);
399 Expect.equals(c.xE_, c.xE);
400
401 Expect.equals(a.xF_, a.xF);
402 Expect.equals(b.xF_, b.xF);
403 Expect.equals(c.xF_, c.xF);
404
405 Expect.equals(a.xG_, a.xG);
406 Expect.equals(b.xG_, b.xG);
407 Expect.equals(c.xG_, c.xG);
408
409 Expect.equals(a.xH_, a.xH);
410 Expect.equals(b.xH_, b.xH);
411 Expect.equals(c.xH_, c.xH);
412
413 Expect.equals(a.xI_, a.xI);
414 Expect.equals(b.xI_, b.xI);
415 Expect.equals(c.xI_, c.xI);
416
417 Expect.equals(a.xJ_, a.xJ);
418 Expect.equals(b.xJ_, b.xJ);
419 Expect.equals(c.xJ_, c.xJ);
420
421 Expect.equals(a.xK_, a.xK);
422 Expect.equals(b.xK_, b.xK);
423 Expect.equals(c.xK_, c.xK);
424
425 Expect.equals(a.xL_, a.xL);
426 Expect.equals(b.xL_, b.xL);
427 Expect.equals(c.xL_, c.xL);
428
429 Expect.equals(a.xM_before, a.xM);
430 Expect.equals(b.xM_before, b.xM);
431 Expect.equals(c.xM_before, c.xM);
432 A.setXM(a);
433 A.setXM(b);
434 A.setXM(c);
435 Expect.equals(a.xM_after, a.xM);
436 Expect.equals(b.xM_after, b.xM);
437 Expect.equals(c.xM_after, c.xM);
438
439 Expect.equals(a.xN_before, a.xN);
440 Expect.equals(b.xN_before, b.xN);
441 Expect.equals(c.xN_before, c.xN);
442 A.setXN(a);
443 A.setXN(b);
444 A.setXN(c);
445 Expect.equals(a.xN_after, a.xN);
446 Expect.equals(b.xN_after, b.xN);
447 Expect.equals(c.xN_after, c.xN);
448
449 Expect.equals(a.xO_before, a.xO);
450 Expect.equals(b.xO_before, b.xO);
451 Expect.equals(c.xO_before, c.xO);
452 A.setXO(a);
453 A.setXO(b);
454 A.setXO(c);
455 Expect.equals(a.xO_after, a.xO);
456 Expect.equals(b.xO_after, b.xO);
457 Expect.equals(c.xO_after, c.xO);
458
459 Expect.equals(a.xP_before, a.xP);
460 Expect.equals(b.xP_before, b.xP);
461 Expect.equals(c.xP_before, c.xP);
462 A.setXP(a);
463 A.setXP(b);
464 A.setXP(c);
465 Expect.equals(a.xP_after, a.xP);
466 Expect.equals(b.xP_after, b.xP);
467 Expect.equals(c.xP_after, c.xP);
468
469 Expect.equals(a.xQ1_before, a.xQ1);
470 Expect.equals(b.xQ1_before, b.xQ1);
471 Expect.equals(c.xQ1_before, c.xQ1);
472 Expect.equals(a.xQ2_before, a.xQ2);
473 Expect.equals(b.xQ2_before, b.xQ2);
474 Expect.equals(c.xQ2_before, c.xQ2);
475 A.setXQ1(a);
476 A.setXQ1(b);
477 A.setXQ1(c);
478 A.setXQ2(a);
479 A.setXQ2(b);
480 A.setXQ2(c);
481 Expect.equals(a.xQ1_after, a.xQ1);
482 Expect.equals(b.xQ1_after, b.xQ1);
483 Expect.equals(c.xQ1_after, c.xQ1);
484 Expect.equals(a.xQ2_after, a.xQ2);
485 Expect.equals(b.xQ2_after, b.xQ2);
486 Expect.equals(c.xQ2_after, c.xQ2);
487
488 Expect.equals(a.xR1_before, a.xR1);
489 Expect.equals(b.xR1_before, b.xR1);
490 Expect.equals(c.xR1_before, c.xR1);
491 Expect.equals(a.xR2_before, a.xR2);
492 Expect.equals(b.xR2_before, b.xR2);
493 Expect.equals(c.xR2_before, c.xR2);
494 Expect.equals(a.xR3_before, a.xR3);
495 Expect.equals(b.xR3_before, b.xR3);
496 Expect.equals(c.xR3_before, c.xR3);
497 A.setXR1(a);
498 A.setXR1(b);
499 A.setXR1(c);
500 A.setXR2(a);
501 A.setXR2(b);
502 A.setXR2(c);
503 Expect.equals(a.xR1_after, a.xR1);
504 Expect.equals(b.xR1_after, b.xR1);
505 Expect.equals(c.xR1_after, c.xR1);
506 Expect.equals(a.xR2_after, a.xR2);
507 Expect.equals(b.xR2_after, b.xR2);
508 Expect.equals(c.xR2_after, c.xR2);
509 Expect.equals(a.xR3_after, a.xR3);
510 Expect.equals(b.xR3_after, b.xR3);
511 Expect.equals(c.xR3_after, c.xR3);
512 }
OLDNEW
« no previous file with comments | « pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/classes.dart ('k') | tests/language_strong/field_override6_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698