dart-sdk/tests/language/await_null_aware_test.dart
Florian Schneider 598018bd21 VM: Fix bug with ??= expressions using await.
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 .
2015-11-03 21:47:06 +01:00

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);
}