| // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| // VMOptions=--assert_initializer |
| // |
| // Dart test program testing assert statements. |
| |
| import "package:expect/expect.dart"; |
| |
| class C { |
| static bool staticTrue() => true; |
| final int x; |
| const C(this.x); |
| // The expression *is* compile-time constant, but not a bool value. |
| // Static warning, runtime always fails assertion. |
| const C.bc01(this.x, y) |
| : assert(staticTrue) //# 01: static type warning |
| ; |
| } |
| |
| main() { |
| bool checkedMode = false; |
| assert(checkedMode = true); |
| if (checkedMode) { //# 01: continued |
| Expect.throws(() => new C.bc01(1, 2), (e) => e is TypeError); //# 01: continued |
| } else { //# 01: continued |
| Expect.equals(1, new C.bc01(1, 2).x); |
| } //# 01: continued |
| } |