// Copyright (c) 2012, 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.

// @dart = 2.9

// Check that conditional expression can be a compile-time constant.

import "package:expect/expect.dart";

const C1 = true;
const C2 = false;

const nephew = C1 ? C2 ? "Tick" : "Trick" : "Track";

main() {
  const a = true ? 5 : 10;
  const b = C2 ? "Track" : C1 ? "Trick" : "Tick";

  Expect.equals(5, a);
  Expect.equals("Trick", nephew);
  Expect.equals(nephew, b);
  Expect.identical(nephew, b);
  var s = const Symbol(nephew);
  var msg = "Donald is $nephew's uncle.";
  Expect.equals("Donald is Trick's uncle.", msg);
}
