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

void ifNull(Object x) {
  ((x is num) || (throw 1)) ?? (( /*num*/ x is int) || (throw 2));
  /*num*/
  x;
}

void ifNull_rightUnPromote(Object x, Object? y, Object z) {
  if (x is int) {
    /*int*/
    x;
    y ?? (x = z);
    x;
  }
}

logicalOr_throw(v) {
  v is String || (throw 42);
  /*String*/
  v;
}
