// 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. import "package:expect/expect.dart"; import "package:async_helper/async_helper.dart"; // Two loop variables test1() async { var r = 0; label: for (var i = 1, j = await //# await_in_init: ok 10; i < 10 && j > await //# await_in_condition: ok -5; j--, i += await //# await_in_update: ok 1) { if (i < await //# await_in_body: ok 5 || j < -5) { continue label; } r++; } Expect.equals(5, r); } // One loop variable test2() async { var r = 0; label: for (var i = await //# await_in_init: ok 0; i < await //# await_in_condition: ok 10; i += await //# await_in_update: ok 1) { if (i < await //# await_in_body: ok 5) { continue label; } r++; } Expect.equals(5, r); } // Variable not declared in initializer; test3() async { var r = 0, i, j; label: for (i = await //# await_in_init: ok 0; i < await //# await_in_condition: ok 10; i += await //# await_in_update: ok 1) { if (i < await //# await_in_body: ok 5) { continue label; } r++; } Expect.equals(5, r); } // Nested loop test4() async { var r = 0; label: for (var i = await //# await_in_init: ok 0; i < await //# await_in_condition: ok 10; i += await //# await_in_update: ok 1) { if (i < await //# await_in_body: ok 5) { for (int i = 0; i < 10; i++) { continue label; } } r++; } Expect.equals(5, r); } test() async { await test1(); await test2(); await test3(); await test4(); } main() { asyncStart(); test().then((_) => asyncEnd()); }