File tree Expand file tree Collapse file tree 3 files changed +138
-1
lines changed
test_data/parser/inline/ok Expand file tree Collapse file tree 3 files changed +138
-1
lines changed Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ pub(super) const PATTERN_FIRST: TokenSet =
55 T ! [ box] ,
66 T ! [ ref] ,
77 T ! [ mut ] ,
8+ T ! [ const ] ,
89 T ! [ '(' ] ,
910 T ! [ '[' ] ,
1011 T ! [ & ] ,
@@ -17,7 +18,7 @@ const PAT_TOP_FIRST: TokenSet = PATTERN_FIRST.union(TokenSet::new(&[T![|]]));
1718
1819/// Set of possible tokens at the start of a range pattern's end bound.
1920const RANGE_PAT_END_FIRST : TokenSet =
20- expressions:: LITERAL_FIRST . union ( paths:: PATH_FIRST ) . union ( TokenSet :: new ( & [ T ! [ -] ] ) ) ;
21+ expressions:: LITERAL_FIRST . union ( paths:: PATH_FIRST ) . union ( TokenSet :: new ( & [ T ! [ -] , T ! [ const ] ] ) ) ;
2122
2223pub ( crate ) fn pattern ( p : & mut Parser < ' _ > ) {
2324 pattern_r ( p, PAT_RECOVERY_SET ) ;
@@ -499,6 +500,14 @@ fn box_pat(p: &mut Parser<'_>) -> CompletedMarker {
499500// fn main() {
500501// let const { 15 } = ();
501502// let const { foo(); bar() } = ();
503+ //
504+ // match 42 {
505+ // const { 0 } .. const { 1 } => (),
506+ // .. const { 0 } => (),
507+ // const { 2 } .. => (),
508+ // }
509+ //
510+ // let (const { () },) = ();
502511// }
503512fn const_block_pat ( p : & mut Parser < ' _ > ) -> CompletedMarker {
504513 assert ! ( p. at( T ![ const ] ) ) ;
Original file line number Diff line number Diff line change @@ -74,6 +74,126 @@ SOURCE_FILE
7474 L_PAREN "("
7575 R_PAREN ")"
7676 SEMICOLON ";"
77+ WHITESPACE "\n\n "
78+ EXPR_STMT
79+ MATCH_EXPR
80+ MATCH_KW "match"
81+ WHITESPACE " "
82+ LITERAL
83+ INT_NUMBER "42"
84+ WHITESPACE " "
85+ MATCH_ARM_LIST
86+ L_CURLY "{"
87+ WHITESPACE "\n "
88+ MATCH_ARM
89+ RANGE_PAT
90+ CONST_BLOCK_PAT
91+ CONST_KW "const"
92+ WHITESPACE " "
93+ BLOCK_EXPR
94+ STMT_LIST
95+ L_CURLY "{"
96+ WHITESPACE " "
97+ LITERAL
98+ INT_NUMBER "0"
99+ WHITESPACE " "
100+ R_CURLY "}"
101+ WHITESPACE " "
102+ DOT2 ".."
103+ WHITESPACE " "
104+ CONST_BLOCK_PAT
105+ CONST_KW "const"
106+ WHITESPACE " "
107+ BLOCK_EXPR
108+ STMT_LIST
109+ L_CURLY "{"
110+ WHITESPACE " "
111+ LITERAL
112+ INT_NUMBER "1"
113+ WHITESPACE " "
114+ R_CURLY "}"
115+ WHITESPACE " "
116+ FAT_ARROW "=>"
117+ WHITESPACE " "
118+ TUPLE_EXPR
119+ L_PAREN "("
120+ R_PAREN ")"
121+ COMMA ","
122+ WHITESPACE "\n "
123+ MATCH_ARM
124+ RANGE_PAT
125+ DOT2 ".."
126+ WHITESPACE " "
127+ CONST_BLOCK_PAT
128+ CONST_KW "const"
129+ WHITESPACE " "
130+ BLOCK_EXPR
131+ STMT_LIST
132+ L_CURLY "{"
133+ WHITESPACE " "
134+ LITERAL
135+ INT_NUMBER "0"
136+ WHITESPACE " "
137+ R_CURLY "}"
138+ WHITESPACE " "
139+ FAT_ARROW "=>"
140+ WHITESPACE " "
141+ TUPLE_EXPR
142+ L_PAREN "("
143+ R_PAREN ")"
144+ COMMA ","
145+ WHITESPACE "\n "
146+ MATCH_ARM
147+ RANGE_PAT
148+ CONST_BLOCK_PAT
149+ CONST_KW "const"
150+ WHITESPACE " "
151+ BLOCK_EXPR
152+ STMT_LIST
153+ L_CURLY "{"
154+ WHITESPACE " "
155+ LITERAL
156+ INT_NUMBER "2"
157+ WHITESPACE " "
158+ R_CURLY "}"
159+ WHITESPACE " "
160+ DOT2 ".."
161+ WHITESPACE " "
162+ FAT_ARROW "=>"
163+ WHITESPACE " "
164+ TUPLE_EXPR
165+ L_PAREN "("
166+ R_PAREN ")"
167+ COMMA ","
168+ WHITESPACE "\n "
169+ R_CURLY "}"
170+ WHITESPACE "\n\n "
171+ LET_STMT
172+ LET_KW "let"
173+ WHITESPACE " "
174+ TUPLE_PAT
175+ L_PAREN "("
176+ CONST_BLOCK_PAT
177+ CONST_KW "const"
178+ WHITESPACE " "
179+ BLOCK_EXPR
180+ STMT_LIST
181+ L_CURLY "{"
182+ WHITESPACE " "
183+ TUPLE_EXPR
184+ L_PAREN "("
185+ R_PAREN ")"
186+ WHITESPACE " "
187+ R_CURLY "}"
188+ COMMA ","
189+ R_PAREN ")"
190+ WHITESPACE " "
191+ EQ "="
192+ WHITESPACE " "
193+ TUPLE_EXPR
194+ L_PAREN "("
195+ R_PAREN ")"
196+ SEMICOLON ";"
77197 WHITESPACE "\n"
78198 R_CURLY "}"
79199 WHITESPACE "\n"
Original file line number Diff line number Diff line change 11fn main( ) {
22 let const { 15 } = ( ) ;
33 let const { foo ( ) ; bar ( ) } = ( ) ;
4+
5+ match 42 {
6+ const { 0 } .. const { 1 } => ( ) ,
7+ .. const { 0 } => ( ) ,
8+ const { 2 } .. => ( ) ,
9+ }
10+
11+ let ( const { ( ) } , ) = ( ) ;
412}
You can’t perform that action at this time.
0 commit comments