// Copyright (c) 2018, 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 Each iteration of the loop binds a new fresh variable
///
/// @description Checks that each iteration of the loop binds a new fresh
/// variable
/// @author sgrekhov@unipro.ru

import "../../Utils/expect.dart";

main() {
  var closures = [
    for (var i = 1; i < 4; i++) () => i++
  ];
  int count = 1;
  for (var closure in closures) {
    Expect.equals(count++, closure());
  }
  count = 2;
  for (var closure in closures) {
    Expect.equals(count++, closure());
  }
}
