// 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.

/**
 * @assertion Evaluation of an if-null expression e of the form e1??e2 is
 * equivalent ... The static type of e is least upper bound of the
 * static type of e1 and the static type of e2 .
 *
 * @description Check that static type of expression e1??e2 match with
 * static type (int) in assignment.
 *
 * @author a.semenov@unipro.ru
 */

main() {
  var x = (null ?? 2) as int?;
  var y = (x ?? 2.0) as num?;
  var d = 3.14 as double?;
  var s = "Lily was here" as String?;
  x = d ?? 1;
  //  ^^^^^^
  // [analyzer] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
  //    ^
  // [cfe] A value of type 'num' can't be assigned to a variable of type 'int?'.
  x = null ?? 1;
  x = null ?? null;
  x = x ?? 'aaa';
  //  ^^^^^^^^^^
  // [analyzer] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
  //    ^
  // [cfe] A value of type 'Object' can't be assigned to a variable of type 'int?'.
  x = s ?? 1;
  //  ^^^^^^
  // [analyzer] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
  //    ^
  // [cfe] A value of type 'Object' can't be assigned to a variable of type 'int?'.
  x = s ?? true;
  //  ^^^^^^^^^
  // [analyzer] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
  //    ^
  // [cfe] A value of type 'Object' can't be assigned to a variable of type 'int?'.
  return x;
}
