Skip to content

Commit

Permalink
Auto merge of rust-lang#13777 - dzvon:fix-13776, r=jonas-schievink
Browse files Browse the repository at this point in the history
fix: add a check for `if` token in patterns parser

Closes rust-lang#13776
  • Loading branch information
bors committed Dec 16, 2022
2 parents 95671d5 + 258e532 commit 4909d4f
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 1 deletion.
12 changes: 11 additions & 1 deletion crates/parser/src/grammar/patterns.rs
Original file line number Diff line number Diff line change
Expand Up @@ -126,11 +126,21 @@ fn pattern_single_r(p: &mut Parser<'_>, recovery_set: TokenSet) {
// ^
// `[0..]`
// ^
if matches!(p.current(), T![=] | T![,] | T![:] | T![')'] | T!['}'] | T![']']) {
// `0 .. if`
// ^
if matches!(
p.current(),
T![=] | T![,] | T![:] | T![')'] | T!['}'] | T![']'] | T![if]
) {
// test half_open_range_pat
// fn f() {
// let 0 .. = 1u32;
// let 0..: _ = 1u32;
//
// match 42 {
// 0 .. if true => (),
// _ => (),
// }
// }
} else {
atom_pat(p, recovery_set);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,49 @@ SOURCE_FILE
LITERAL
INT_NUMBER "1u32"
SEMICOLON ";"
WHITESPACE "\n\n "
MATCH_EXPR
MATCH_KW "match"
WHITESPACE " "
LITERAL
INT_NUMBER "42"
WHITESPACE " "
MATCH_ARM_LIST
L_CURLY "{"
WHITESPACE "\n "
MATCH_ARM
RANGE_PAT
LITERAL_PAT
LITERAL
INT_NUMBER "0"
WHITESPACE " "
DOT2 ".."
WHITESPACE " "
MATCH_GUARD
IF_KW "if"
WHITESPACE " "
LITERAL
TRUE_KW "true"
WHITESPACE " "
FAT_ARROW "=>"
WHITESPACE " "
TUPLE_EXPR
L_PAREN "("
R_PAREN ")"
COMMA ","
WHITESPACE "\n "
MATCH_ARM
WILDCARD_PAT
UNDERSCORE "_"
WHITESPACE " "
FAT_ARROW "=>"
WHITESPACE " "
TUPLE_EXPR
L_PAREN "("
R_PAREN ")"
COMMA ","
WHITESPACE "\n "
R_CURLY "}"
WHITESPACE "\n"
R_CURLY "}"
WHITESPACE "\n"
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
fn f() {
let 0 .. = 1u32;
let 0..: _ = 1u32;

match 42 {
0 .. if true => (),
_ => (),
}
}

0 comments on commit 4909d4f

Please sign in to comment.