blob: 44ea44d9ca72cfd5c0122ae8ec195e94a7af00a6 [file] [log] [blame]
// Copyright (c) 2015, 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.
import "package:expect/expect.dart";
class C {
// Since this field is final and already initialized, the specification says
// that a runtime error occurs when attempting to initialize it in the
// constructor. When used as a compile-time constant, this causes a
// compile-time error.
final x = 1;
const C(
this. //# 01: compile-time error
this. //# 02: static type warning
x
)
: x = 2 //# 03: compile-time error
: x = 2 //# 04: static type warning
;
}
instantiateC() {
const C(0); //# 01: continued
const C(0); //# 03: continued
new C(0);
}
main() {
bool shouldThrow = false;
shouldThrow = true; //# 02: continued
shouldThrow = true; //# 04: continued
if (shouldThrow) {
Expect.throws(instantiateC);
} else {
instantiateC();
}
}