Files
sdk/pkg/front_end/parser_testcases/patterns/issue_51169.dart.parser.expect
T
Jens Johansen ee32255b21 [parser] Support record type in pattern
Fixes http://dartbug.com/51169
Fixes http://dartbug.com/51176

Change-Id: Iaa38585ce311319f2f4c106fc979c99d931eaa15
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/280106
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2023-01-31 18:24:42 +00:00

38 lines
2.0 KiB
Plaintext

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);
}
}
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]
[SimpleToken]