| OLD | NEW |
| (Empty) | |
| 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 |
| 3 // BSD-style license that can be found in the LICENSE file. |
| 4 |
| 5 class S { } |
| 6 class M1 { } |
| 7 class M2 { } |
| 8 |
| 9 typedef C = S with M1; |
| 10 typedef D = S with M1, M2; |
| 11 typedef E = S with M2, M1; |
| 12 class F extends E { } |
| 13 |
| 14 typedef C_ = S with M1; |
| 15 typedef D_ = S with M1, M2; |
| 16 typedef E_ = S with M2, M1; |
| 17 class F_ extends E_ { } |
| 18 |
| 19 main() { |
| 20 var c = new C(); |
| 21 Expect.isTrue(c is C); |
| 22 Expect.isFalse(c is D); |
| 23 Expect.isFalse(c is E); |
| 24 Expect.isFalse(c is F); |
| 25 Expect.isTrue(c is S); |
| 26 Expect.isTrue(c is M1); |
| 27 Expect.isFalse(c is M2); |
| 28 |
| 29 var d = new D(); |
| 30 Expect.isFalse(d is C); |
| 31 Expect.isTrue(d is D); |
| 32 Expect.isFalse(d is E); |
| 33 Expect.isFalse(d is F); |
| 34 Expect.isTrue(d is S); |
| 35 Expect.isTrue(d is M1); |
| 36 Expect.isTrue(d is M2); |
| 37 |
| 38 var e = new E(); |
| 39 Expect.isFalse(e is C); |
| 40 Expect.isFalse(e is D); |
| 41 Expect.isTrue(e is E); |
| 42 Expect.isFalse(e is F); |
| 43 Expect.isTrue(e is S); |
| 44 Expect.isTrue(e is M1); |
| 45 Expect.isTrue(e is M2); |
| 46 |
| 47 var f = new F(); |
| 48 Expect.isFalse(f is C); |
| 49 Expect.isFalse(f is D); |
| 50 Expect.isTrue(f is E); |
| 51 Expect.isTrue(f is F); |
| 52 Expect.isTrue(f is S); |
| 53 Expect.isTrue(f is M1); |
| 54 Expect.isTrue(f is M2); |
| 55 |
| 56 // Make sure we get a new class for each mixin |
| 57 // application (at least the named ones). |
| 58 Expect.isFalse(c is C_); |
| 59 Expect.isFalse(c is D_); |
| 60 Expect.isFalse(c is E_); |
| 61 Expect.isFalse(c is F_); |
| 62 |
| 63 Expect.isFalse(d is C_); |
| 64 Expect.isFalse(d is D_); |
| 65 Expect.isFalse(d is E_); |
| 66 Expect.isFalse(d is F_); |
| 67 |
| 68 Expect.isFalse(e is C_); |
| 69 Expect.isFalse(e is D_); |
| 70 Expect.isFalse(e is E_); |
| 71 Expect.isFalse(e is F_); |
| 72 |
| 73 Expect.isFalse(f is C_); |
| 74 Expect.isFalse(f is D_); |
| 75 Expect.isFalse(f is E_); |
| 76 Expect.isFalse(f is F_); |
| 77 } |
| OLD | NEW |