| // Copyright (c) 2014, 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. |
| |
| import 'dart:async'; |
| |
| import 'package:expect/expect.dart'; |
| |
| // Note, this is a regression test for: |
| // https://github.com/dart-lang/sdk/issues/29252 |
| class Foo { |
| Future? _x; |
| int z = -1; |
| List list = []; |
| |
| Future foo() async { |
| _x ??= new Future(() async { |
| z = await new Future.value(42); |
| list = list.toList()..add(z); |
| }); |
| await _x; |
| return list[0]; |
| } |
| } |
| |
| main() async { |
| var f = new Foo(); |
| var result = await f.foo(); |
| Expect.equals(42, result); |
| } |