OLD | NEW |
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 // SharedOptions=--supermixin | 4 // SharedOptions=--supermixin |
5 | 5 |
6 import "package:expect/expect.dart"; | 6 import "package:expect/expect.dart"; |
7 | 7 |
8 class MS<T> { | 8 class MS<T> { |
9 foo() { | 9 foo() { |
10 return "MS<$T>.foo\n"; | 10 return "MS<$T>.foo\n"; |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 return super.foo() + "MNA2<$U, $V, $W>.foo\n"; | 48 return super.foo() + "MNA2<$U, $V, $W>.foo\n"; |
49 } | 49 } |
50 } | 50 } |
51 | 51 |
52 class MNA3<U, V, W> extends S<List<U>> with SM<U, V>, N<W> { | 52 class MNA3<U, V, W> extends S<List<U>> with SM<U, V>, N<W> { |
53 foo() { | 53 foo() { |
54 return super.foo() + "MNA3<$U, $V, $W>.foo\n"; | 54 return super.foo() + "MNA3<$U, $V, $W>.foo\n"; |
55 } | 55 } |
56 } | 56 } |
57 | 57 |
58 main(){ | 58 main() { |
59 Expect.equals("MS<List<double>>.foo\n" | 59 Expect.equals( |
60 "M<double>.foo\n", | 60 "MS<List<double>>.foo\n" |
61 new M<double>().foo()); | 61 "M<double>.foo\n", |
62 Expect.equals("S<List<int>>.foo\n" | 62 new M<double>().foo()); |
63 "M<Map<int, String>>.foo\n", | 63 Expect.equals( |
64 new SM<int, String>().foo()); | 64 "S<List<int>>.foo\n" |
65 Expect.equals("S<List<int>>.foo\n" | 65 "M<Map<int, String>>.foo\n", |
66 "M<Map<int, String>>.foo\n" | 66 new SM<int, String>().foo()); |
67 "N<bool>.foo\n" | 67 Expect.equals( |
68 "MNA1<int, String, bool>.foo\n", | 68 "S<List<int>>.foo\n" |
69 new MNA1<int, String, bool>().foo()); | 69 "M<Map<int, String>>.foo\n" |
70 Expect.equals("S<List<int>>.foo\n" | 70 "N<bool>.foo\n" |
71 "M<Map<int, String>>.foo\n" | 71 "MNA1<int, String, bool>.foo\n", |
72 "N<bool>.foo\n" | 72 new MNA1<int, String, bool>().foo()); |
73 "MNA2<int, String, bool>.foo\n", | 73 Expect.equals( |
74 new MNA2<int, String, bool>().foo()); | 74 "S<List<int>>.foo\n" |
75 Expect.equals("S<List<int>>.foo\n" | 75 "M<Map<int, String>>.foo\n" |
76 "M<Map<int, String>>.foo\n" | 76 "N<bool>.foo\n" |
77 "N<bool>.foo\n" | 77 "MNA2<int, String, bool>.foo\n", |
78 "MNA3<int, String, bool>.foo\n", | 78 new MNA2<int, String, bool>().foo()); |
79 new MNA3<int, String, bool>().foo()); | 79 Expect.equals( |
| 80 "S<List<int>>.foo\n" |
| 81 "M<Map<int, String>>.foo\n" |
| 82 "N<bool>.foo\n" |
| 83 "MNA3<int, String, bool>.foo\n", |
| 84 new MNA3<int, String, bool>().foo()); |
80 } | 85 } |
81 | |
OLD | NEW |