OLD | NEW |
| (Empty) |
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 | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 | |
5 import "package:expect/expect.dart"; | |
6 | |
7 class A { | |
8 } | |
9 | |
10 class $B extends A { | |
11 } | |
12 | |
13 class C implements $B { | |
14 // Try to clash with dart2js's isCLASS field. | |
15 var isB = false; | |
16 var $isB = false; | |
17 var is$B = false; | |
18 var is$$B = false; | |
19 var $is$B = false; | |
20 | |
21 var isA = false; | |
22 var $isA = false; | |
23 var is$A = false; | |
24 var is$$A = false; | |
25 var $is$A = false; | |
26 } | |
27 | |
28 int inscrutable(int x) => x == 0 ? 0 : x | inscrutable(x & (x - 1)); | |
29 | |
30 main() { | |
31 var things = [new A(), new $B(), new C()]; | |
32 | |
33 var a = things[inscrutable(0)]; | |
34 Expect.isTrue(a is A); | |
35 Expect.isFalse(a is $B); | |
36 Expect.isFalse(a is C); | |
37 | |
38 var b = things[inscrutable(1)]; | |
39 Expect.isTrue(b is A); | |
40 Expect.isTrue(b is $B); | |
41 Expect.isFalse(b is C); | |
42 | |
43 var c = things[inscrutable(2)]; | |
44 Expect.isTrue(c is A); | |
45 Expect.isTrue(c is $B); | |
46 Expect.isTrue(c is C); | |
47 } | |
OLD | NEW |