| // 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. |
| |
| int test(o) { |
| switch (o) { |
| case [var a]: |
| return a; |
| case 0: |
| continue CASE2; |
| CASE1: |
| case 1: |
| return 1; |
| CASE2: |
| case 2: |
| return 2; |
| case 3: |
| continue DEFAULT; |
| case 4: |
| return 4; |
| DEFAULT: |
| default: |
| return -1; |
| } |
| } |
| |
| main() { |
| expect(0, test([0])); |
| expect(1, test([1])); |
| expect(2, test(0)); |
| expect(1, test(1)); |
| expect(2, test(2)); |
| expect(-1, test(3)); |
| expect(4, test(4)); |
| expect(-1, test(5)); |
| expect(-1, test([])); |
| } |
| |
| expect(expected, actual) { |
| if (expected != actual) { |
| throw 'Expected $expected, actual $actual'; |
| } |
| } |