Recover from missing comma between enum variants
This commit is contained in:
@@ -7711,11 +7711,29 @@ impl<'a> Parser<'a> {
|
||||
};
|
||||
variants.push(respan(vlo.to(self.prev_span), vr));
|
||||
|
||||
if !self.eat(&token::Comma) { break; }
|
||||
if !self.eat(&token::Comma) {
|
||||
if self.token.is_ident() &&
|
||||
!self.token.is_special_ident() &&
|
||||
!self.token.is_used_keyword() &&
|
||||
!self.token.is_unused_keyword()
|
||||
{
|
||||
let sp = self.sess.source_map().next_point(self.prev_span);
|
||||
let mut err = self.struct_span_err(sp, "missing comma");
|
||||
err.span_suggestion_short(
|
||||
sp,
|
||||
"missing comma",
|
||||
",".to_owned(),
|
||||
Applicability::MaybeIncorrect,
|
||||
);
|
||||
err.emit();
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
self.expect(&token::CloseDelim(token::Brace))?;
|
||||
if !any_disr.is_empty() && !all_nullary {
|
||||
let mut err =self.struct_span_err(
|
||||
let mut err = self.struct_span_err(
|
||||
any_disr.clone(),
|
||||
"discriminator values can only be used with a field-less enum",
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user