de-fatalize some errors

This commit is contained in:
Mazdak Farrokhzad 2019-12-30 15:09:42 +01:00
parent 2091062bf6
commit b6fc87c5b9
7 changed files with 17 additions and 9 deletions

View File

@ -177,10 +177,6 @@ impl<'a> Parser<'a> {
self.sess.span_diagnostic.span_bug(self.token.span, m)
}
pub(super) fn span_err<S: Into<MultiSpan>>(&self, sp: S, m: &str) {
self.sess.span_diagnostic.span_err(sp, m)
}
pub fn struct_span_err<S: Into<MultiSpan>>(&self, sp: S, m: &str) -> DiagnosticBuilder<'a> {
self.sess.span_diagnostic.struct_span_err(sp, m)
}

View File

@ -822,7 +822,11 @@ impl<'a> Parser<'a> {
} else {
// Field access `expr.f`
if let Some(args) = segment.args {
self.span_err(args.span(), "field expressions may not have generic arguments");
self.struct_span_err(
args.span(),
"field expressions may not have generic arguments",
)
.emit();
}
let span = lo.to(self.prev_span);

View File

@ -617,7 +617,7 @@ impl<'a> Parser<'a> {
// This notably includes paths passed through `ty` macro fragments (#46438).
TyKind::Path(None, path) => path,
_ => {
self.span_err(ty_first.span, "expected a trait, found type");
self.struct_span_err(ty_first.span, "expected a trait, found type").emit();
err_path(ty_first.span)
}
};

View File

@ -93,7 +93,7 @@ impl<'a> Parser<'a> {
maybe_whole!(self, NtPath, |path| {
if style == PathStyle::Mod && path.segments.iter().any(|segment| segment.args.is_some())
{
self.diagnostic().span_err(path.span, "unexpected generic arguments in path");
self.struct_span_err(path.span, "unexpected generic arguments in path").emit();
}
path
});

View File

@ -193,7 +193,8 @@ impl<'a> Parser<'a> {
if self.prev_token_kind == PrevTokenKind::DocComment {
self.span_fatal_err(self.prev_span, Error::UselessDocComment).emit();
} else if attrs.iter().any(|a| a.style == AttrStyle::Outer) {
self.span_err(self.token.span, "expected statement after outer attribute");
self.struct_span_err(self.token.span, "expected statement after outer attribute")
.emit();
}
}
}

View File

@ -112,3 +112,4 @@ fn main() {}
#[cfg(FALSE)] fn e() { { fn foo() { #[attr]; } } }
//~^ ERROR expected statement after outer attribute
#[cfg(FALSE)] fn e() { { fn foo() { #[attr] } } }
//~^ ERROR expected statement after outer attribute

View File

@ -410,5 +410,11 @@ error: expected statement after outer attribute
LL | #[cfg(FALSE)] fn e() { { fn foo() { #[attr]; } } }
| ^
error: aborting due to 56 previous errors
error: expected statement after outer attribute
--> $DIR/attr-stmt-expr-attr-bad.rs:114:45
|
LL | #[cfg(FALSE)] fn e() { { fn foo() { #[attr] } } }
| ^
error: aborting due to 57 previous errors