Skip to content

Commit

Permalink
implement and use diagnostic_snapshot
Browse files Browse the repository at this point in the history
  • Loading branch information
TaKO8Ki committed Mar 9, 2022
1 parent 527b1f3 commit a34015c
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 2 deletions.
7 changes: 7 additions & 0 deletions compiler/rustc_parse/src/parser/diagnostics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,13 @@ impl<'a> Parser<'a> {
&self.sess.span_diagnostic
}

pub(super) fn diagnostic_snapshot(&self) -> Self {
let mut snapshot = self.clone();
// initialize unclosed_delims to avoid duplicate errors.
snapshot.unclosed_delims = vec![];
snapshot
}

pub(super) fn span_to_snippet(&self, span: Span) -> Result<String, SpanSnippetError> {
self.sess.source_map().span_to_snippet(span)
}
Expand Down
3 changes: 1 addition & 2 deletions compiler/rustc_parse/src/parser/path.rs
Original file line number Diff line number Diff line change
Expand Up @@ -625,8 +625,7 @@ impl<'a> Parser<'a> {
} else if self.check_type() {
// Parse type argument.
let is_const_fn = self.look_ahead(1, |t| t.kind == token::OpenDelim(token::Paren));
let mut snapshot = self.clone();
snapshot.unclosed_delims = vec![];
let mut snapshot = self.diagnostic_snapshot();
match self.parse_ty() {
Ok(ty) => GenericArg::Type(ty),
Err(err) => {
Expand Down

0 comments on commit a34015c

Please sign in to comment.