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 // Check that initializers of static const fields are compile time constants. | |
5 | |
6 import "package:expect/expect.dart"; | |
7 | |
8 class CanonicalConstTest { | |
9 static const A = const C1(); | |
10 static const B = const C2(); | |
11 | |
12 static testMain() { | |
13 Expect.identical(null, null); | |
14 Expect.isFalse(identical(null, 0)); | |
15 Expect.identical(1, 1); | |
16 Expect.isFalse(identical(1, 2)); | |
17 Expect.identical(true, true); | |
18 Expect.identical("so", "so"); | |
19 Expect.identical(const Object(), const Object()); | |
20 Expect.isFalse(identical(const Object(), const C1())); | |
21 Expect.identical(const C1(), const C1()); | |
22 Expect.identical(A, const C1()); | |
23 Expect.isFalse(identical(const C1(), const C2())); | |
24 Expect.identical(B, const C2()); | |
25 // TODO(johnlenz): these two values don't currently have the same type | |
26 // Expect.identical(const [1,2], const List[1,2]); | |
27 Expect.isFalse(identical(const [2, 1], const [1, 2])); | |
28 Expect.identical(const <int>[1, 2], const <int>[1, 2]); | |
29 Expect.identical(const <Object>[1, 2], const <Object>[1, 2]); | |
30 Expect.isFalse(identical(const <int>[1, 2], const <double>[1.0, 2.0])); | |
31 Expect.identical(const {"a": 1, "b": 2}, const {"a": 1, "b": 2}); | |
32 Expect.isFalse(identical(const {"a": 1, "b": 2}, const {"a": 2, "b": 2})); | |
33 } | |
34 } | |
35 | |
36 class C1 { | |
37 const C1(); | |
38 } | |
39 | |
40 class C2 extends C1 { | |
41 const C2() : super(); | |
42 } | |
43 | |
44 main() { | |
45 CanonicalConstTest.testMain(); | |
46 } | |
OLD | NEW |