suggest removing a semicolon after derive attributes

use current token span
This commit is contained in:
Takayuki Maeda 2022-03-05 12:20:08 +09:00
parent 06460fe72c
commit 47d91bc9e6
3 changed files with 28 additions and 0 deletions

View File

@ -449,6 +449,16 @@ impl<'a> Parser<'a> {
if end.is_doc_comment() {
err.span_label(end.span, "this doc comment doesn't document anything");
}
if end.meta_kind().is_some() {
if self.token.kind == TokenKind::Semi {
err.span_suggestion_verbose(
self.token.span,
"consider removing this semicolon",
String::new(),
Applicability::MaybeIncorrect,
);
}
}
if let [.., penultimate, _] = attrs {
err.span_label(start.span.to(penultimate.span), "other attributes here");
}

View File

@ -0,0 +1,4 @@
#[derive(Debug, Clone)]; //~ERROR expected item after attributes
struct Foo;
fn main() {}

View File

@ -0,0 +1,14 @@
error: expected item after attributes
--> $DIR/attr-with-a-semicolon.rs:1:1
|
LL | #[derive(Debug, Clone)];
| ^^^^^^^^^^^^^^^^^^^^^^^
|
help: consider removing this semicolon
|
LL - #[derive(Debug, Clone)];
LL + #[derive(Debug, Clone)]
|
error: aborting due to previous error