OLD | NEW |
| (Empty) |
1 // Copyright (c) 2011, 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 // VMOptions=--enable_type_checks | |
5 | |
6 // Test that type variables aren't in scope of static methods and factories. | |
7 | |
8 class Foo<T> { | |
9 // T is not in scope for a static method. | |
10 static | |
11 Foo<T> /// 00: compile-time error | |
12 m( | |
13 Foo<T> /// 01: compile-time error | |
14 f) { | |
15 I<T> x; /// 02: compile-time error | |
16 } | |
17 | |
18 // T is in scope for a factory method. | |
19 factory I(I<T> i) { | |
20 I<T> x; | |
21 } | |
22 | |
23 // T is not in scope for a static field. | |
24 static Foo<T> f1; /// 03: compile-time error | |
25 | |
26 static | |
27 Foo<T> /// 04: compile-time error | |
28 get f() { return null; } | |
29 | |
30 static void set f( | |
31 Foo<T> /// 05: compile-time error | |
32 value) {} | |
33 } | |
34 | |
35 interface I<T> default Foo<T> { | |
36 I(I<T> i); | |
37 } | |
38 | |
39 main() { | |
40 Foo.m(null); | |
41 new I(null); | |
42 } | |
OLD | NEW |