parse_labeled_expr: add a suggestion on missing colon.

This commit is contained in:
Mazdak Farrokhzad 2020-03-06 03:43:59 +01:00
parent fe848b44fe
commit e72df7edad
2 changed files with 31 additions and 14 deletions

View file

@ -1106,14 +1106,24 @@ impl<'a> Parser<'a> {
}?;
if !ate_colon {
self.struct_span_err(expr.span, "labeled expression must be followed by `:`")
.span_label(lo, "the label")
.emit();
self.error_labeled_expr_must_be_followed_by_colon(lo, expr.span);
}
Ok(expr)
}
fn error_labeled_expr_must_be_followed_by_colon(&self, lo: Span, span: Span) {
self.struct_span_err(span, "labeled expression must be followed by `:`")
.span_label(lo, "the label")
.span_suggestion_short(
lo.shrink_to_hi(),
"add `:` after the label",
": ".to_string(),
Applicability::MachineApplicable,
)
.emit();
}
/// Recover on the syntax `do catch { ... }` suggesting `try { ... }` instead.
fn recover_do_catch(&mut self, attrs: AttrVec) -> PResult<'a, P<Expr>> {
let lo = self.token.span;