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 import "package:expect/expect.dart"; | |
6 | |
7 bool get inCheckedMode { | |
8 try { | |
9 var i = 42; | |
10 String a = i; | |
11 } catch (e) { | |
12 return true; | |
13 } | |
14 return false; | |
15 } | |
16 | |
17 class A<T> { | |
18 T field; | |
19 } | |
20 | |
21 class B<T> { | |
22 T field = 42; //# 01: static type warning | |
23 } | |
24 | |
25 class C<T> { | |
26 T field = 42; //# 02: static type warning | |
27 } | |
28 | |
29 main() { | |
30 var a = new A<String>(); | |
31 var c = new C<int>(); | |
32 var i = 42; | |
33 var s = 'foo'; | |
34 if (inCheckedMode) { | |
35 Expect.throws(() => a.field = i, (e) => e is TypeError); | |
36 Expect.throws(() => new B<String>(), (e) => e is TypeError); //# 01: continu
ed | |
37 Expect.throws(() => c.field = s, (e) => e is TypeError); //# 02: continued | |
38 } else { | |
39 a.field = i; | |
40 new B<String>(); //# 01: continued | |
41 c.field = s; //# 02: continued | |
42 } | |
43 } | |
OLD | NEW |