diff --git a/src/librustc_parse/parser/diagnostics.rs b/src/librustc_parse/parser/diagnostics.rs index d091cceb932..2e58b702d92 100644 --- a/src/librustc_parse/parser/diagnostics.rs +++ b/src/librustc_parse/parser/diagnostics.rs @@ -177,10 +177,6 @@ impl<'a> Parser<'a> { self.sess.span_diagnostic.span_bug(self.token.span, m) } - pub(super) fn span_err>(&self, sp: S, m: &str) { - self.sess.span_diagnostic.span_err(sp, m) - } - pub fn struct_span_err>(&self, sp: S, m: &str) -> DiagnosticBuilder<'a> { self.sess.span_diagnostic.struct_span_err(sp, m) } diff --git a/src/librustc_parse/parser/expr.rs b/src/librustc_parse/parser/expr.rs index 5566407963a..f5cefeca339 100644 --- a/src/librustc_parse/parser/expr.rs +++ b/src/librustc_parse/parser/expr.rs @@ -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); diff --git a/src/librustc_parse/parser/item.rs b/src/librustc_parse/parser/item.rs index 424483292b6..64482f09ede 100644 --- a/src/librustc_parse/parser/item.rs +++ b/src/librustc_parse/parser/item.rs @@ -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) } }; diff --git a/src/librustc_parse/parser/path.rs b/src/librustc_parse/parser/path.rs index ef22628a5e0..6f24dfcd027 100644 --- a/src/librustc_parse/parser/path.rs +++ b/src/librustc_parse/parser/path.rs @@ -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 }); diff --git a/src/librustc_parse/parser/stmt.rs b/src/librustc_parse/parser/stmt.rs index 8270da6c023..1d0897a3cf3 100644 --- a/src/librustc_parse/parser/stmt.rs +++ b/src/librustc_parse/parser/stmt.rs @@ -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(); } } } diff --git a/src/test/ui/parser/attr-stmt-expr-attr-bad.rs b/src/test/ui/parser/attr-stmt-expr-attr-bad.rs index 6e1d72cd2f6..f6d2bee0e15 100644 --- a/src/test/ui/parser/attr-stmt-expr-attr-bad.rs +++ b/src/test/ui/parser/attr-stmt-expr-attr-bad.rs @@ -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 diff --git a/src/test/ui/parser/attr-stmt-expr-attr-bad.stderr b/src/test/ui/parser/attr-stmt-expr-attr-bad.stderr index 371d3f575a4..0123006418a 100644 --- a/src/test/ui/parser/attr-stmt-expr-attr-bad.stderr +++ b/src/test/ui/parser/attr-stmt-expr-attr-bad.stderr @@ -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