| // Copyright (c) 2023, 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(List<int> list) { |
| var (<num>[v] as List<int>) = list; |
| expect(42, v); |
| } |
| |
| test2() { |
| num? x = 2 > 1 ? 42 : null; |
| var (v2!) = x; |
| expect(42, v2); |
| } |
| |
| main() { |
| test(<int>[42]); |
| throws(() => test(<int>[])); |
| throws(() => test(<int>[1, 2])); |
| |
| test2(); |
| } |
| |
| expect(expected, actual) { |
| if (expected != actual) throw 'Expected $expected, actual $actual'; |
| } |
| |
| throws(void Function() f) { |
| try { |
| f(); |
| } catch (_) { |
| return; |
| } |
| throw 'Missing exception'; |
| } |