| // 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(); | 
 |   } | 
 | } |