// Copyright (c) 2011, 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.

/// @assertion Let s1,...,sn be those try statements that are both enclosed in
/// sE and that enclose sc, and that have a finally clause. Lastly, let fj be
/// the finally clause of sj, 1 <= j <= n. Executing sc first executes f1,...,fn
/// in innermost-clause-first order. Then, if sE is a case clause, control is
/// transferred to the case clause. Otherwise, sE is necessarily a loop and
/// execution resumes after the last statement in the loop body.
/// @description Checks that the execution of "continue;" statement transfers
/// control to the innermost enclosing loop statement and that all finally
/// clauses between them are executed in the innermost-clause-first order.
/// @author rodionov

import '../../../Utils/expect.dart';

main() {
  List order = [];
  bool flag = false;
  while (!flag) {
    switch (1) {
    case 1:
    case 2:
      try {
        try {
          flag = true;
          continue;
          Expect.fail("This code shouldn't be executed");
        } finally {
          order.add(3);
        }
      } finally {
        order.add(2);
      }
      break;
    case 3:
      Expect.fail("This code shouldn't be executed");
      break;
    default:
      Expect.fail("This code shouldn't be executed");
      break;
    }
    order.add(1);
  }

  Expect.listEquals([3, 2], order);
}
