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-02-05 01:35:25 -0800
committerEsteban Küber <esteban@kuber.com.ar>2019-02-07 01:42:54 -0800
commit99be87aac3b9af941e74b8681643e1963ce75671 (patch)
treeb18c23ebee3a4c5d52a0f0391141002d50e3d12b /src/libsyntax/parse/parser.rs
parent7451cd8dc0b20c012fad1886b321c3dee2052577 (diff)
downloadrust-99be87aac3b9af941e74b8681643e1963ce75671.tar.gz
rust-99be87aac3b9af941e74b8681643e1963ce75671.zip
unify error handling to single method
Diffstat (limited to 'src/libsyntax/parse/parser.rs')
-rw-r--r--src/libsyntax/parse/parser.rs36
1 files changed, 20 insertions, 16 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index 2e605ab6544..4a932ab7bd1 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -724,7 +724,7 @@ impl<'a> Parser<'a> {
                 if let Some(sp) = unmatched.unclosed_span {
                     err.span_label(sp, "in order to close this...");
                 }
-                err.span_suggestion_short_with_applicability(
+                err.span_suggestion_short(
                     self.sess.source_map().next_point(self.prev_span),
                     &format!("{} may belong here", delim.to_string()),
                     delim.to_string(),
@@ -1180,7 +1180,7 @@ impl<'a> Parser<'a> {
                     //     self.struct_span_err(
                     //         self.span,
                     //         &format!("expected `>`, found `{}`", self.this_token_to_string()),
-                    //     // ).span_suggestion_short_with_applicability(
+                    //     // ).span_suggestion_short(
                     //     ).emit();
                     //     Ok(())
                     // }
@@ -8503,20 +8503,7 @@ impl<'a> Parser<'a> {
             module: self.parse_mod_items(&token::Eof, lo)?,
             span: lo.to(self.span),
         });
-        for unmatched in &self.unclosed_delims {
-            let mut err = self.struct_span_err(unmatched.found_span, &format!(
-                "incorrect close delimiter: `{}`",
-                pprust::token_to_string(&token::Token::CloseDelim(unmatched.found_delim)),
-            ));
-            err.span_label(unmatched.found_span, "incorrect close delimiter");
-            if let Some(sp) = unmatched.candidate_span {
-                err.span_label(sp, "close delimiter possibly meant for this");
-            }
-            if let Some(sp) = unmatched.unclosed_span {
-                err.span_label(sp, "un-closed delimiter");
-            }
-            err.emit();
-        }
+        emit_unclosed_delims(&self.unclosed_delims, self.diagnostic());
         self.unclosed_delims.clear();
         krate
     }
@@ -8547,3 +8534,20 @@ impl<'a> Parser<'a> {
         }
     }
 }
+
+pub fn emit_unclosed_delims(unclosed_delims: &[UnmatchedBrace], handler: &errors::Handler) {
+    for unmatched in unclosed_delims {
+        let mut err = handler.struct_span_err(unmatched.found_span, &format!(
+            "incorrect close delimiter: `{}`",
+            pprust::token_to_string(&token::Token::CloseDelim(unmatched.found_delim)),
+        ));
+        err.span_label(unmatched.found_span, "incorrect close delimiter");
+        if let Some(sp) = unmatched.candidate_span {
+            err.span_label(sp, "close delimiter possibly meant for this");
+        }
+        if let Some(sp) = unmatched.unclosed_span {
+            err.span_label(sp, "un-closed delimiter");
+        }
+        err.emit();
+    }
+}
\ No newline at end of file