Skip to content

Commit 9872bef

Browse files
authored
Merge pull request #1838 from dtolnay/prevoperator
Short-circuit precedence scan for high-precedence expressions
2 parents 83195c0 + 00a125e commit 9872bef

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

src/fixup.rs

+9-3
Original file line numberDiff line numberDiff line change
@@ -351,9 +351,15 @@ impl FixupContext {
351351
let default_prec = self.precedence(expr);
352352

353353
#[cfg(feature = "full")]
354-
if default_prec < Precedence::Prefix
355-
&& (!self.next_operator_can_begin_expr || self.next_operator == Precedence::Range)
356-
{
354+
if match self.previous_operator {
355+
Precedence::Assign | Precedence::Let | Precedence::Prefix => {
356+
default_prec < self.previous_operator
357+
}
358+
_ => default_prec <= self.previous_operator,
359+
} && match self.next_operator {
360+
Precedence::Range => true,
361+
_ => !self.next_operator_can_begin_expr,
362+
} {
357363
if let Scan::Bailout | Scan::Fail = scan_right(expr, self, self.previous_operator, 1, 0)
358364
{
359365
if scan_left(expr, self) {

0 commit comments

Comments
 (0)