about summary refs log tree commit diff
path: root/compiler/rustc_parse/src/parser/expr.rs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/rustc_parse/src/parser/expr.rs')
-rw-r--r--compiler/rustc_parse/src/parser/expr.rs10
1 files changed, 9 insertions, 1 deletions
diff --git a/compiler/rustc_parse/src/parser/expr.rs b/compiler/rustc_parse/src/parser/expr.rs
index 9f2267efb82..b98372d0f28 100644
--- a/compiler/rustc_parse/src/parser/expr.rs
+++ b/compiler/rustc_parse/src/parser/expr.rs
@@ -292,7 +292,15 @@ impl<'a> Parser<'a> {
                 let op_span = self.prev_token.span.to(self.token.span);
                 // Eat the second `+`
                 self.bump();
-                lhs = self.recover_from_postfix_increment(lhs, op_span)?;
+                let prev_is_semi = {
+                    if let Ok(prev_code) = self.sess.source_map().span_to_prev_source(lhs.span) &&
+                          prev_code.trim_end().ends_with(";") {
+                            true
+                    } else {
+                        false
+                    }
+                };
+                lhs = self.recover_from_postfix_increment(lhs, op_span, prev_is_semi)?;
                 continue;
             }