| OLD | NEW | 
|---|
| 1 // Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file | 1 // Copyright (c) 2017, 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 file. | 3 // BSD-style license that can be found in the LICENSE file. | 
| 4 // VMOptions=--assert_initializer | 4 // VMOptions=--assert_initializer | 
| 5 // | 5 // | 
| 6 // Dart test program testing assert statements. | 6 // Dart test program testing assert statements. | 
| 7 | 7 | 
| 8 import "package:expect/expect.dart"; | 8 import "package:expect/expect.dart"; | 
| 9 | 9 | 
| 10 class C { | 10 class C { | 
| 11   static bool staticTrue() => true; | 11   static bool staticTrue() => true; | 
| 12   final int x; | 12   final int x; | 
| 13   const C(this.x); | 13   const C(this.x); | 
| 14   // The expression *is* a compile-time constant, but not a bool value. | 14   // The expression *is* a compile-time constant, but not a bool value. | 
| 15   // Static warning, assertion throws which makes it a compile-time error. | 15   // Static warning, assertion throws which makes it a compile-time error. | 
| 16   const C.bc02(this.x, y) | 16   const C.bc02(this.x, y) | 
| 17       : assert(staticTrue) //# 01: static type warning | 17       : assert(staticTrue) //# 01: static type warning | 
| 18       ; | 18       ; | 
| 19 } | 19 } | 
| 20 | 20 | 
| 21 | 21 | 
| 22 main() { | 22 main() { | 
| 23   // Assertion fails, so in checked mode it's a compile-time error. | 23   // Assertion fails, so in checked mode it's a compile-time error. | 
| 24   // Production mode will succeed because the assertion isn't evaluated. | 24   // Production mode will succeed because the assertion isn't evaluated. | 
| 25   var c = const C(1); | 25   var c = const C(1); | 
| 26   c = const C.bc02(1, 2);  //# 01: compile-time error | 26   c = const C.bc02(1, 2);  //# 01: compile-time error | 
| 27   if (c.x != 1) throw "non-trivial use of c"; | 27   if (c.x != 1) throw "non-trivial use of c"; | 
| 28   Expect.identical(const C(1), c); | 28   Expect.identical(const C(1), c); | 
| 29 } | 29 } | 
| OLD | NEW | 
|---|