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 // Dart test program testing type checks in map literals. | |
7 | |
8 class MapLiteral4Test<T> { | |
9 test() { | |
10 int result = 0; | |
11 try { | |
12 var m = <String>{"a": 0}; // 0 is not a String. | |
13 } catch (TypeError error) { | |
14 result += 1; | |
15 } | |
16 try { | |
17 var m = <int>{"a": 0}; | |
18 m[2] = 1; // 2 is not a String. | |
19 } catch (TypeError error) { | |
20 result += 10; | |
21 } | |
22 try { | |
23 var m = <T>{"a": "b"}; // "b" is not an int. | |
24 } catch (TypeError error) { | |
25 result += 100; | |
26 } | |
27 try { | |
28 var m = <T>{"a": 0}; // OK. | |
29 } catch (TypeError error) { | |
30 result += 1000; | |
31 } | |
32 try { | |
33 var m = <T>{"a": 0}; | |
34 m[2] = 1; // 2 is not a String. | |
35 } catch (TypeError error) { | |
36 result += 10000; | |
37 } | |
38 try { | |
39 var m = const <int>{"a": 0}; | |
40 m[2] = 1; // 2 is not a String. | |
41 } catch (TypeError error) { | |
42 result += 100000; | |
43 } | |
44 return result; | |
45 } | |
46 } | |
47 | |
48 main() { | |
49 var t = new MapLiteral4Test<int>(); | |
50 Expect.equals(110111, t.test()); | |
51 } | |
52 | |
53 | |
OLD | NEW |