/*
 * Copyright (c) 2019, 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 The [??] operator only evaluates its second operand if the first
 * evaluates to [null], and the second operand must be a potentially constant
 * expression.
 * @description Checks that operator [??] rejects the second operand if the
 * first one is not [null] in constant expression.
 * @author iarkh@unipro.ru
 */
import "../../Utils/expect.dart";

const dynamic d1 = "12345";
const dynamic d2 = 11;
const int? i = 14;

main() {
  const int a1 = (20 as int?) ?? (null as String).length;
  Expect.equals(20, a1);

  const String? a2 = ("testme" as String?) ?? "wrong";
  Expect.equals("testme", a2);

  const int a3 = i ?? d1;
  Expect.equals(14, a3);

  const int a4 = i ?? d2;
  Expect.equals(14, a4);

  const a5 = d1 ?? null;
  Expect.equals(a5, a5);
}
