| method1(o) => switch (o) { |
| final int a => 'working', |
| final String a => 'working', |
| final () a => 'working', |
| final (int, String) a => 'working', |
| final int a? => 'working', |
| final String a? => 'working', |
| final () a? => 'working', |
| final (int, String) a? => 'working', |
| (:final () a) => 'working', |
| (:final (int, String) a) => 'working', |
| (:final int a?) => 'working', |
| (:final String a?) => 'working', |
| (:final () a?) => 'working', |
| (:final (int, String) a?) => 'working', |
| _ => '', |
| }; |
| |
| method2(o) => switch (o) { |
| final int async => 'working', |
| final String async => 'working', |
| // Notice how `() async => ` means something here... |
| final () async => 'working', |
| final (int, String) async => 'working', |
| final int async? => 'working', |
| final String async? => 'working', |
| final () async? => 'working', |
| final (int, String) async? => 'working', |
| (:final () async) => 'working', |
| (:final (int, String) async) => 'working', |
| (:final int async?) => 'working', |
| (:final String async?) => 'working', |
| (:final () async?) => 'working', |
| (:final (int, String) async?) => 'working', |
| _ => '', |
| }; |
| |
| void foo() { |
| // ...and the same thing something different here! |
| () async => print("async unnamed taking 0 parameters"); |
| (int x) async => print("async unnamed taking 1 parameter"); |
| (int x, int y) async => print("async unnamed taking 2 parameters"); |
| } |