| // Copyright (c) 2025, 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. |
| |
| import 'package:expect/expect.dart'; |
| |
| String test1(int? value) { |
| switch (value) { |
| case 55: |
| return '55'; |
| case 352: |
| return '352'; |
| case null: |
| return 'null'; |
| } |
| |
| return 'no match'; |
| } |
| |
| String test2(int? value) { |
| switch (value) { |
| case null: |
| return 'null'; |
| } |
| return 'no match'; |
| } |
| |
| String test3(int? value) { |
| switch (value) { |
| case 10: |
| case null: |
| return 'null or 10'; |
| case 20: |
| return '20'; |
| } |
| |
| return 'no match'; |
| } |
| |
| const nullConstant = null; |
| |
| test4(int? value) { |
| switch (value) { |
| case nullConstant: |
| return 'null'; |
| } |
| |
| return 'no match'; |
| } |
| |
| void main() { |
| Expect.equals(test1(55), '55'); |
| Expect.equals(test1(352), '352'); |
| Expect.equals(test1(null), 'null'); |
| Expect.equals(test1(38792), 'no match'); |
| |
| Expect.equals(test2(0), 'no match'); |
| Expect.equals(test2(null), 'null'); |
| |
| Expect.equals(test3(10), 'null or 10'); |
| Expect.equals(test3(null), 'null or 10'); |
| Expect.equals(test3(20), '20'); |
| Expect.equals(test3(28132), 'no match'); |
| |
| Expect.equals(test4(nullConstant), 'null'); |
| Expect.equals(test4(2189), 'no match'); |
| } |