| // 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)?\)'))); | 
 |   } | 
 | } |