| class Class { |
| dynamic field; |
| Class(this.field); |
| } |
| |
| test(a) { |
| switch (a) { |
| case (foo: int b) when b != 2: |
| print(b); |
| case (foo: (int, int) b) when b != (2, 3): |
| print(b); |
| case Class(field: int b) when b != 2: |
| print(b); |
| case Class(field: (int, int) b) when b != (2, 3): |
| print(b); |
| } |
| } |
| |
| testNullable(a) { |
| switch (a) { |
| case (foo: (int, int)? b) when b != (2, 3): |
| print(b); |
| case Class(field: (int, int)? b) when b != (2, 3): |
| print(b); |
| } |
| } |
| |
| |
| class[KeywordToken] Class[StringToken] {[BeginToken] |
| dynamic[KeywordToken] field[StringToken];[SimpleToken] |
| Class[StringToken]([BeginToken]this[KeywordToken].[SimpleToken]field[StringToken])[SimpleToken];[SimpleToken] |
| }[SimpleToken] |
| |
| test[StringToken]([BeginToken]a[StringToken])[SimpleToken] {[BeginToken] |
| switch[KeywordToken] ([BeginToken]a[StringToken])[SimpleToken] {[BeginToken] |
| case[KeywordToken] ([BeginToken]foo[StringToken]:[SimpleToken] int[StringToken] b[StringToken])[SimpleToken] when[KeywordToken] b[StringToken] !=[SimpleToken] 2[StringToken]:[SimpleToken] |
| print[StringToken]([BeginToken]b[StringToken])[SimpleToken];[SimpleToken] |
| case[KeywordToken] ([BeginToken]foo[StringToken]:[SimpleToken] ([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken] b[StringToken])[SimpleToken] when[KeywordToken] b[StringToken] !=[SimpleToken] ([BeginToken]2[StringToken],[SimpleToken] 3[StringToken])[SimpleToken]:[SimpleToken] |
| print[StringToken]([BeginToken]b[StringToken])[SimpleToken];[SimpleToken] |
| case[KeywordToken] Class[StringToken]([BeginToken]field[StringToken]:[SimpleToken] int[StringToken] b[StringToken])[SimpleToken] when[KeywordToken] b[StringToken] !=[SimpleToken] 2[StringToken]:[SimpleToken] |
| print[StringToken]([BeginToken]b[StringToken])[SimpleToken];[SimpleToken] |
| case[KeywordToken] Class[StringToken]([BeginToken]field[StringToken]:[SimpleToken] ([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken] b[StringToken])[SimpleToken] when[KeywordToken] b[StringToken] !=[SimpleToken] ([BeginToken]2[StringToken],[SimpleToken] 3[StringToken])[SimpleToken]:[SimpleToken] |
| print[StringToken]([BeginToken]b[StringToken])[SimpleToken];[SimpleToken] |
| }[SimpleToken] |
| }[SimpleToken] |
| |
| testNullable[StringToken]([BeginToken]a[StringToken])[SimpleToken] {[BeginToken] |
| switch[KeywordToken] ([BeginToken]a[StringToken])[SimpleToken] {[BeginToken] |
| case[KeywordToken] ([BeginToken]foo[StringToken]:[SimpleToken] ([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken]?[SimpleToken] b[StringToken])[SimpleToken] when[KeywordToken] b[StringToken] !=[SimpleToken] ([BeginToken]2[StringToken],[SimpleToken] 3[StringToken])[SimpleToken]:[SimpleToken] |
| print[StringToken]([BeginToken]b[StringToken])[SimpleToken];[SimpleToken] |
| case[KeywordToken] Class[StringToken]([BeginToken]field[StringToken]:[SimpleToken] ([BeginToken]int[StringToken],[SimpleToken] int[StringToken])[SimpleToken]?[SimpleToken] b[StringToken])[SimpleToken] when[KeywordToken] b[StringToken] !=[SimpleToken] ([BeginToken]2[StringToken],[SimpleToken] 3[StringToken])[SimpleToken]:[SimpleToken] |
| print[StringToken]([BeginToken]b[StringToken])[SimpleToken];[SimpleToken] |
| }[SimpleToken] |
| }[SimpleToken] |
| [SimpleToken] |