OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 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 | 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 // Tests that malformed types used in extends, implements, and with clauses | 5 // Tests that malformed types used in extends, implements, and with clauses |
6 // cause compile-time errors. | 6 // cause compile-time errors. |
7 | 7 |
8 import 'package:expect/expect.dart'; | 8 import 'package:expect/expect.dart'; |
9 | 9 |
10 class A<T> {} | 10 class A<T> {} |
11 | 11 |
12 class C | 12 class C |
13 extends Unresolved //# 01: compile-time error | 13 extends Unresolved //# 01: compile-time error |
14 extends A<Unresolved> //# 02: static type warning | 14 extends A<Unresolved> //# 02: static type warning |
15 extends Object with Unresolved //# 03: compile-time error | 15 extends Object with Unresolved //# 03: compile-time error |
16 extends Object with A<Unresolved> //# 04: static type warning | 16 extends Object with A<Unresolved> //# 04: static type warning |
17 implements Unresolved //# 05: compile-time error | 17 implements Unresolved //# 05: compile-time error |
18 implements A<Unresolved> //# 06: static type warning | 18 implements A<Unresolved> //# 06: static type warning |
19 <A> extends A<int> //# 07: compile-time error | 19 <A> extends A<int> //# 07: compile-time error |
20 <A> extends A<Unresolved> //# 08: compile-time error | 20 <A> extends A<Unresolved> //# 08: compile-time error |
21 <A> extends Object with A<int> //# 09: compile-time error | 21 <A> extends Object with A<int> //# 09: compile-time error |
22 <A> extends Object with A<Unresolved> //# 10: compile-time error | 22 <A> extends Object with A<Unresolved> //# 10: compile-time error |
23 <A> implements A<int> //# 11: compile-time error | 23 <A> implements A<int> //# 11: compile-time error |
24 <A> implements A<Unresolved> //# 12: compile-time error | 24 <A> implements A<Unresolved> //# 12: compile-time error |
25 { | 25 {} |
26 | |
27 } | |
28 | 26 |
29 void main() { | 27 void main() { |
30 new C(); | 28 new C(); |
31 Expect.isTrue(new C() is A<String> && new C() is A<int>); //# 02: continued | 29 Expect.isTrue(new C() is A<String> && new C() is A<int>); //# 02: continued |
32 Expect.isTrue(new C() is A<String> && new C() is A<int>); //# 04: continued | 30 Expect.isTrue(new C() is A<String> && new C() is A<int>); //# 04: continued |
33 Expect.isTrue(new C() is A<String> && new C() is A<int>); //# 06: continued | 31 Expect.isTrue(new C() is A<String> && new C() is A<int>); //# 06: continued |
34 } | 32 } |
OLD | NEW |