38e250b4d5
Includes all the files which required no manual treatment. Change-Id: I3d493bcbc238a2016579a0f804d32f4829efb87b Cq-Include-Trybots: dart/try:vm-aot-android-release-arm_x64-try,vm-aot-linux-debug-x64-try,vm-aot-linux-debug-x64c-try,vm-aot-mac-release-arm64-try,vm-aot-mac-release-x64-try,vm-aot-win-debug-x64c-try,vm-checked-mac-release-arm64-try,vm-ffi-qemu-linux-release-arm-try,vm-ffi-qemu-linux-release-riscv64-try,vm-linux-debug-ia32-try,vm-linux-debug-x64-try,vm-linux-debug-x64c-try,vm-mac-debug-arm64-try,vm-reload-linux-debug-x64-try,vm-reload-rollback-linux-debug-x64-try,vm-win-release-ia32-try Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/399102 Reviewed-by: Bob Nystrom <rnystrom@google.com> Commit-Queue: Daco Harkes <dacoharkes@google.com>
28 lines
992 B
Dart
28 lines
992 B
Dart
// 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();
|
|
}
|
|
}
|