about summary refs log tree commit diff
path: root/src/libsyntax/parse/parser.rs
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2019-05-02 16:13:28 -0700
committerEsteban Küber <esteban@kuber.com.ar>2019-05-02 16:13:28 -0700
commitf6a4b5270a0007e950546828a7f6fc7c54354b96 (patch)
tree9957f766cf04f54b8c9cee777ef7a88239c6664d /src/libsyntax/parse/parser.rs
parente0cef5cf406016d5c1685a164a27571d182fa873 (diff)
downloadrust-f6a4b5270a0007e950546828a7f6fc7c54354b96.tar.gz
rust-f6a4b5270a0007e950546828a7f6fc7c54354b96.zip
Deduplicate needed parentheses suggestion code
Diffstat (limited to 'src/libsyntax/parse/parser.rs')
-rw-r--r--src/libsyntax/parse/parser.rs29
1 files changed, 6 insertions, 23 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index 02e6c5e1c8d..66d45f799d9 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -2931,14 +2931,7 @@ impl<'a> Parser<'a> {
                             if let Some(sp) = self.sess.abiguous_block_expr_parse.borrow()
                                 .get(&sp)
                             {
-                                if let Ok(snippet) = self.sess.source_map().span_to_snippet(*sp) {
-                                    err.span_suggestion(
-                                        *sp,
-                                        "parentheses are required to parse this as an expression",
-                                        format!("({})", snippet),
-                                        Applicability::MachineApplicable,
-                                    );
-                                }
+                                self.sess.expr_parentheses_needed(&mut err, *sp, None);
                             }
                             err.span_label(self.span, "expected expression");
                             return Err(err);
@@ -3657,14 +3650,11 @@ impl<'a> Parser<'a> {
                     pprust::token_to_string(&self.token),
                 ));
                 err.span_label(self.span, "expected expression");
-                let snippet = self.sess.source_map().span_to_snippet(lhs.span)
-                    .unwrap_or_else(|_| pprust::expr_to_string(&lhs));
-                err.span_suggestion(
+                self.sess.expr_parentheses_needed(
+                    &mut err,
                     lhs.span,
-                    "parentheses are required to parse this as an expression",
-                    format!("({})", snippet),
-                    Applicability::MachineApplicable,
-                );
+                    Some(pprust::expr_to_string(&lhs),
+                ));
                 err.emit();
             }
         }
@@ -4979,14 +4969,7 @@ impl<'a> Parser<'a> {
                         err.span_label(self.span, format!("expected {}", expected));
                         let sp = self.sess.source_map().start_point(self.span);
                         if let Some(sp) = self.sess.abiguous_block_expr_parse.borrow().get(&sp) {
-                            if let Ok(snippet) = self.sess.source_map().span_to_snippet(*sp) {
-                                err.span_suggestion(
-                                    *sp,
-                                    "parentheses are required to parse this as an expression",
-                                    format!("({})", snippet),
-                                    Applicability::MachineApplicable,
-                                );
-                            }
+                            self.sess.expr_parentheses_needed(&mut err, *sp, None);
                         }
                         return Err(err);
                     }