| 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 |