blob: 8a5e0ce0652a3b665bc94867b3fa766a80760f24 [file] [log] [blame]
// 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.
// @dart = 2.9
// Regression test for issue 22822. The assignment in the finally block
// used to crash because it was executed at context level 1 instead of
// context level 2.
import 'package:expect/expect.dart';
test(b) {
try {
for (int i = 0; i < 10; i++) {
// Closurizing i and b, thus the return statement
// executes at context level 2, and the code in
// the finally block runs at context level 1.
return () => i + b;
}
} finally {
b = 10;
}
}
main() {
var c = test(0);
Expect.equals(10, c());
}