diff options
| author | Esteban Küber <esteban@kuber.com.ar> | 2019-02-05 01:35:25 -0800 |
|---|---|---|
| committer | Esteban Küber <esteban@kuber.com.ar> | 2019-02-07 01:42:54 -0800 |
| commit | 99be87aac3b9af941e74b8681643e1963ce75671 (patch) | |
| tree | b18c23ebee3a4c5d52a0f0391141002d50e3d12b /src/libsyntax/parse/parser.rs | |
| parent | 7451cd8dc0b20c012fad1886b321c3dee2052577 (diff) | |
| download | rust-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.rs | 36 |
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 |
