blob: f77cbac40ca5f3a457c001a00f7ac969bd2e6f29 [file] [log] [blame]
// 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 A constant expression is an expression whose value can never
* change, and that can be evaluated entirely at compile time.
* A constant expression is one of the following:
* . . .
* • An expression of the form e1?e2:e3 where where e1, e2 and e3 are constant
* expressions and e1 evaluates to a boolean value.
* @description Checks that various conditional expressions with constant
* operands are constant expressions.
* @author ilya
*/
import '../../../Utils/expect.dart';
const x = false;
const y = !x ? true : x;
class C {
const C();
}
const list = const [
x ? 1 : 0,
(y == y && x == x) ? (!x ? const C() : null) : (y ? y : y)
];
main() {
Expect.isTrue(list is List);
}