Rollup merge of #100475 - chenyukang:fix-100461, r=fee1-dead
Give a helpful diagnostic when the next struct field has an attribute Fixes #100461
This commit is contained in:
commit
29f905bfaf
@ -1544,8 +1544,12 @@ fn parse_single_struct_field(
|
||||
}
|
||||
}
|
||||
|
||||
if self.token.is_ident() {
|
||||
// This is likely another field; emit the diagnostic and keep going
|
||||
if self.token.is_ident()
|
||||
|| (self.token.kind == TokenKind::Pound
|
||||
&& (self.look_ahead(1, |t| t == &token::OpenDelim(Delimiter::Bracket))))
|
||||
{
|
||||
// This is likely another field, TokenKind::Pound is used for `#[..]` attribute for next field,
|
||||
// emit the diagnostic and keep going
|
||||
err.span_suggestion(
|
||||
sp,
|
||||
"try adding a comma",
|
||||
|
18
src/test/ui/parser/struct-filed-with-attr.fixed
Normal file
18
src/test/ui/parser/struct-filed-with-attr.fixed
Normal file
@ -0,0 +1,18 @@
|
||||
// Issue: 100461, Try to give a helpful diagnostic even when the next struct field has an attribute.
|
||||
// run-rustfix
|
||||
|
||||
struct Feelings {
|
||||
owo: bool,
|
||||
//~^ ERROR expected `,`, or `}`, found `#`
|
||||
#[allow(unused)]
|
||||
uwu: bool,
|
||||
}
|
||||
|
||||
impl Feelings {
|
||||
#[allow(unused)]
|
||||
fn hmm(&self) -> bool {
|
||||
self.owo
|
||||
}
|
||||
}
|
||||
|
||||
fn main() { }
|
18
src/test/ui/parser/struct-filed-with-attr.rs
Normal file
18
src/test/ui/parser/struct-filed-with-attr.rs
Normal file
@ -0,0 +1,18 @@
|
||||
// Issue: 100461, Try to give a helpful diagnostic even when the next struct field has an attribute.
|
||||
// run-rustfix
|
||||
|
||||
struct Feelings {
|
||||
owo: bool
|
||||
//~^ ERROR expected `,`, or `}`, found `#`
|
||||
#[allow(unused)]
|
||||
uwu: bool,
|
||||
}
|
||||
|
||||
impl Feelings {
|
||||
#[allow(unused)]
|
||||
fn hmm(&self) -> bool {
|
||||
self.owo
|
||||
}
|
||||
}
|
||||
|
||||
fn main() { }
|
8
src/test/ui/parser/struct-filed-with-attr.stderr
Normal file
8
src/test/ui/parser/struct-filed-with-attr.stderr
Normal file
@ -0,0 +1,8 @@
|
||||
error: expected `,`, or `}`, found `#`
|
||||
--> $DIR/struct-filed-with-attr.rs:5:14
|
||||
|
|
||||
LL | owo: bool
|
||||
| ^ help: try adding a comma: `,`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
Loading…
Reference in New Issue
Block a user