// 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* a compile-time constant, but not a bool value. // Static warning, assertion throws which makes it a compile-time error. const C.bc02(this.x, y) : assert(staticTrue) //# 01: static type warning ; } main() { // Assertion fails, so in checked mode it's a compile-time error. // Production mode will succeed because the assertion isn't evaluated. var c = const C(1); c = const C.bc02(1, 2); //# 01: compile-time error if (c.x != 1) throw "non-trivial use of c"; Expect.identical(const C(1), c); }