mirror of
https://github.com/dart-lang/sdk
synced 2024-09-20 02:50:20 +00:00
598018bd21
Moving the construction of ?? into the parser using LetNode, so that the await-transformations are properly applied. a ?? b becomes { temp = a; temp !== null ? temp : b; } a ??= b becomes { temp = a; temp != null ? temp : a = b; } BUG=issue #24392 R=hausner@google.com Review URL: https://codereview.chromium.org/1417733007 .
24 lines
524 B
Dart
24 lines
524 B
Dart
// 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.
|
|
|
|
// Regression test for issue dartbug.com/24392
|
|
|
|
import 'package:expect/expect.dart';
|
|
import 'dart:async';
|
|
|
|
Future<int> f() async {
|
|
// Unreachable.
|
|
Expect.isTrue(false);
|
|
}
|
|
|
|
main() async {
|
|
int x = 1;
|
|
x ??= await f();
|
|
Expect.equals(1, x);
|
|
|
|
int y = 1;
|
|
y = y ?? await f();
|
|
Expect.equals(1, y);
|
|
}
|