1.35 -> 1.36 regression: && incorrectly considered to be unable to start expressions. #74233
Labels
A-parser
Area: The parsing of Rust source code to an AST
C-bug
Category: This is a bug.
P-high
High priority
regression-from-stable-to-stable
Performance or correctness regression from one stable version to another.
relnotes
Marks issues that should be documented in the release notes of the next release.
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
This example compiles on 1.35 but not 1.36 or later:
(The example above was reduced from one involving
match ... {...} && false
, found by @digama0)This regression was likely introduced by #60188, due to the definition of
can_continue_expr_unambiguously
:rust/src/librustc_ast/util/parser.rs
Lines 209 to 232 in daecab3
That function lists all of the operators that can't start an expression, but only continue it.
LAnd
(&&
) is incorrectly included, as&&expr
is parsed the same as& &expr
at the start of an expression.cc @estebank
The text was updated successfully, but these errors were encountered: