blob: 1443195afabffdcc602634639d65e5697714667f [file] [log] [blame] [edit]
// Copyright (c) 2024, 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.
// Regression test for https://github.com/dart-lang/sdk/issues/56412.
//
// The combination of named arguments in any position and finalizables leads
// to nested let expressions. Let expressions introduce scopes. Often variables
// get hoisted into a parent scope which is usually a block. But this specific
// regression test has a variable declaration in a let scope.
// (The bug was that in the compiler, let expressions were not entering scopes.)
import 'dart:ffi';
void main() {
MyFinalizable().myMethod(namedArgument: Object(), () {
final error = StateError('Cause crash');
throw error;
});
print('done');
}
class MyFinalizable implements Finalizable {
Object myMethod(Object Function() action, {Object? namedArgument}) {
return Object();
}
}