Fix ICE when misplaced visibility cannot be properly parsed

This commit is contained in:
Ryan Levick
2021-07-07 14:25:40 +02:00
parent c5e344f774
commit 04a9c10fc2
3 changed files with 18 additions and 1 deletions

View File

@@ -1791,7 +1791,13 @@ impl<'a> Parser<'a> {
if self.check_keyword(kw::Pub) {
let sp = sp_start.to(self.prev_token.span);
if let Ok(snippet) = self.span_to_snippet(sp) {
let vis = self.parse_visibility(FollowedByType::No)?;
let vis = match self.parse_visibility(FollowedByType::No) {
Ok(v) => v,
Err(mut d) => {
d.cancel();
return Err(err);
}
};
let vs = pprust::vis_to_string(&vis);
let vs = vs.trim_end();
err.span_suggestion(