OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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.md file. | 3 // BSD-style license that can be found in the LICENSE.md file. |
4 | 4 |
5 class Foo { | 5 class Foo { |
6 static const staticConstant = 42; | 6 static const staticConstant = 42; |
7 static var staticField = 42; | 7 static var staticField = 42; |
8 static staticFunction() { | 8 static staticFunction() {} |
9 } | |
10 | 9 |
11 static get staticGetter => null; | 10 static get staticGetter => null; |
12 static set staticSetter(_) {} | 11 static set staticSetter(_) {} |
13 } | 12 } |
14 | 13 |
15 use(x) { | 14 use(x) { |
16 if (x == new DateTime.now().millisecondsSinceEpoch) throw "Shouldn't happen"; | 15 if (x == new DateTime.now().millisecondsSinceEpoch) throw "Shouldn't happen"; |
17 } | 16 } |
18 | 17 |
19 main() { | 18 main() { |
20 Foo.staticConstant; | 19 try { |
21 use(Foo.staticConstant); | 20 Foo.staticConstant; |
22 Foo.staticField; | 21 use(Foo.staticConstant); |
23 use(Foo.staticField); | 22 Foo.staticField; |
24 Foo.staticFunction; | 23 use(Foo.staticField); |
25 use(Foo.staticFunction); | 24 Foo.staticFunction; |
26 Foo.staticGetter; | 25 use(Foo.staticFunction); |
27 use(Foo.staticGetter); | 26 Foo.staticGetter; |
28 Foo.staticSetter; | 27 use(Foo.staticGetter); |
29 use(Foo.staticSetter); | 28 Foo.staticSetter; |
| 29 use(Foo.staticSetter); |
30 | 30 |
31 Foo.staticConstant++; | 31 Foo.staticConstant++; |
32 use(Foo.staticConstant++); | 32 use(Foo.staticConstant++); |
33 Foo.staticField++; | 33 Foo.staticField++; |
34 use(Foo.staticField++); | 34 use(Foo.staticField++); |
35 Foo.staticFunction++; | 35 Foo.staticFunction++; |
36 use(Foo.staticFunction++); | 36 use(Foo.staticFunction++); |
37 Foo.staticGetter++; | 37 Foo.staticGetter++; |
38 use(Foo.staticGetter++); | 38 use(Foo.staticGetter++); |
39 Foo.staticSetter++; | 39 Foo.staticSetter++; |
40 use(Foo.staticSetter++); | 40 use(Foo.staticSetter++); |
41 | 41 |
42 ++Foo.staticConstant; | 42 ++Foo.staticConstant; |
43 use(++Foo.staticConstant); | 43 use(++Foo.staticConstant); |
44 ++Foo.staticField; | 44 ++Foo.staticField; |
45 use(++Foo.staticField); | 45 use(++Foo.staticField); |
46 ++Foo.staticFunction; | 46 ++Foo.staticFunction; |
47 use(++Foo.staticFunction); | 47 use(++Foo.staticFunction); |
48 ++Foo.staticGetter; | 48 ++Foo.staticGetter; |
49 use(++Foo.staticGetter); | 49 use(++Foo.staticGetter); |
50 ++Foo.staticSetter; | 50 ++Foo.staticSetter; |
51 use(++Foo.staticSetter); | 51 use(++Foo.staticSetter); |
52 | 52 |
53 Foo.staticConstant(); | 53 Foo.staticConstant(); |
54 use(Foo.staticConstant()); | 54 use(Foo.staticConstant()); |
55 Foo.staticField(); | 55 Foo.staticField(); |
56 use(Foo.staticField()); | 56 use(Foo.staticField()); |
57 Foo.staticFunction(); | 57 Foo.staticFunction(); |
58 use(Foo.staticFunction()); | 58 use(Foo.staticFunction()); |
59 Foo.staticGetter(); | 59 Foo.staticGetter(); |
60 use(Foo.staticGetter()); | 60 use(Foo.staticGetter()); |
61 Foo.staticSetter(); | 61 Foo.staticSetter(); |
62 use(Foo.staticSetter()); | 62 use(Foo.staticSetter()); |
63 | 63 |
64 Foo.staticConstant = 87; | 64 Foo.staticConstant = 87; |
65 use(Foo.staticConstant = 87); | 65 use(Foo.staticConstant = 87); |
66 Foo.staticField = 87; | 66 Foo.staticField = 87; |
67 use(Foo.staticField = 87); | 67 use(Foo.staticField = 87); |
68 Foo.staticFunction = 87; | 68 Foo.staticFunction = 87; |
69 use(Foo.staticFunction = 87); | 69 use(Foo.staticFunction = 87); |
70 Foo.staticGetter = 87; | 70 Foo.staticGetter = 87; |
71 use(Foo.staticGetter = 87); | 71 use(Foo.staticGetter = 87); |
72 Foo.staticSetter = 87; | 72 Foo.staticSetter = 87; |
73 use(Foo.staticSetter = 87); | 73 use(Foo.staticSetter = 87); |
74 | 74 |
75 Foo.staticConstant ??= 87; | 75 Foo.staticConstant ??= 87; |
76 use(Foo.staticConstant ??= 87); | 76 use(Foo.staticConstant ??= 87); |
77 Foo.staticField ??= 87; | 77 Foo.staticField ??= 87; |
78 use(Foo.staticField ??= 87); | 78 use(Foo.staticField ??= 87); |
79 Foo.staticFunction ??= 87; | 79 Foo.staticFunction ??= 87; |
80 use(Foo.staticFunction ??= 87); | 80 use(Foo.staticFunction ??= 87); |
81 Foo.staticGetter ??= 87; | 81 Foo.staticGetter ??= 87; |
82 use(Foo.staticGetter ??= 87); | 82 use(Foo.staticGetter ??= 87); |
83 Foo.staticSetter ??= 87; | 83 Foo.staticSetter ??= 87; |
84 use(Foo.staticSetter ??= 87); | 84 use(Foo.staticSetter ??= 87); |
| 85 } on NoSuchMethodError { |
| 86 // Expected. |
| 87 } |
85 } | 88 } |
OLD | NEW |