// Copyright (c) 2011, 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. | |
/// @assertion Any expression that appears within the initializer list of a | |
/// constant constructor must be a potentially constant expression, or a | |
/// compile-time error occurs. | |
/// | |
/// A potentially constant expression is an expression E that would be a valid | |
/// constant expression if all formal parameters of E's immediately enclosing | |
/// constant constructor were treated as compile-time constants that were | |
/// guaranteed to evaluate to an integer, boolean or string value as required | |
/// by their immediately enclosing superexpression. | |
/// @description Checks that it is a compile-time error when a constant | |
/// constructor's initializer list contains a function call. | |
/// @author iefremov | |
f() {} | |
class A { | |
final x; | |
const A() : x = f(); | |
// ^^^ | |
// [analyzer] unspecified | |
// [cfe] unspecified | |
} | |
main() { | |
const A(); | |
// ^ | |
// [analyzer] unspecified | |
} |