about summary refs log tree commit diff
path: root/src/libsyntax/parse/parser/expr.rs
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2019-09-29 19:07:26 -0700
committerEsteban Küber <esteban@kuber.com.ar>2019-10-03 11:55:18 -0700
commited60cf2475cabd3d9ad1afdc03bd6952d99b744c (patch)
treedee2a035a94709e49d7ba216f036b67070a129fb /src/libsyntax/parse/parser/expr.rs
parentf2023ac599c38a59f86552089e6791c5a73412d3 (diff)
downloadrust-ed60cf2475cabd3d9ad1afdc03bd6952d99b744c.tar.gz
rust-ed60cf2475cabd3d9ad1afdc03bd6952d99b744c.zip
When encountering chained operators use heuristics to recover from bad turbofish
Diffstat (limited to 'src/libsyntax/parse/parser/expr.rs')
-rw-r--r--src/libsyntax/parse/parser/expr.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libsyntax/parse/parser/expr.rs b/src/libsyntax/parse/parser/expr.rs
index 23674ad589d..b459782d237 100644
--- a/src/libsyntax/parse/parser/expr.rs
+++ b/src/libsyntax/parse/parser/expr.rs
@@ -238,7 +238,9 @@ impl<'a> Parser<'a> {
 
             self.bump();
             if op.is_comparison() {
-                self.check_no_chained_comparison(&lhs, &op)?;
+                if let Some(expr) = self.check_no_chained_comparison(&lhs, &op)? {
+                    return Ok(expr);
+                }
             }
             // Special cases:
             if op == AssocOp::As {