| // 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. |
| |
| // @dart = 2.9 |
| |
| /// @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 is least upper |
| /// bound of the static type of e1 and the static type of e2 . |
| /// |
| /// @author a.semenov@unipro.ru |
| /// @author sgrekhov@unipro.ru |
| /// |
| |
| import 'dart:collection'; |
| import '../../../Utils/expect.dart'; |
| |
| main() { |
| var x1 = 1.0 ?? 2.0; |
| Expect.isTrue(x1 is double); |
| |
| var x2 = null ?? 2.0; |
| Expect.isTrue(x2 is double); |
| |
| var x3 = 'aaa' ?? 'bbb'; |
| Expect.isTrue(x3 is String); |
| |
| var x4 = true ?? false; |
| Expect.isTrue(x4 is bool); |
| |
| var x5 = new LinkedHashMap() ?? new SplayTreeMap(); |
| Expect.isTrue(x5 is LinkedHashMap); |
| |
| var x6 = 'aaa' ?? null; |
| Expect.isTrue(x6 is String); |
| } |
| |