blob: 5c89b1bca9a53657a0a81984161e4b4957b24753 [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.
// Test that throws during destructuring have the correct stack trace.
// Regression test for https://github.com/dart-lang/sdk/issues/53519
import 'package:expect/expect.dart';
String destructure(Map<String, dynamic> map) {
final {'hello': world, 'count': count} = map;
return 'Hello $world, count: $count';
}
main() {
try {
destructure({
'hello': 'world',
// No count entry, so the destructuring fails.
});
} catch (e, s) {
print(s);
// Expect that the stack trace contains an entry for the destructure
// function at line 11.
Expect.isTrue(s.toString().contains(RegExp(r'destructure \(.*:11(:3)?\)')));
}
}