mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-21 22:34:05 +00:00
Trim whitespace in RemoveLet primary span
Separate `RemoveLet` span into primary span for `let` and removal suggestion span for `let `, so that primary span does not include whitespace. Fixes: #133031 Signed-off-by: Tyrone Wu <wudevelops@gmail.com>
This commit is contained in:
parent
c82e0dff84
commit
dd557c988f
@ -650,8 +650,9 @@ pub(crate) struct LeftArrowOperator {
|
||||
#[diag(parse_remove_let)]
|
||||
pub(crate) struct RemoveLet {
|
||||
#[primary_span]
|
||||
#[suggestion(applicability = "machine-applicable", code = "", style = "verbose")]
|
||||
pub span: Span,
|
||||
#[suggestion(applicability = "machine-applicable", code = "", style = "verbose")]
|
||||
pub suggestion: Span,
|
||||
}
|
||||
|
||||
#[derive(Diagnostic)]
|
||||
|
@ -685,7 +685,7 @@ impl<'a> Parser<'a> {
|
||||
self.bump();
|
||||
// Trim extra space after the `let`
|
||||
let span = lo.with_hi(self.token.span.lo());
|
||||
self.dcx().emit_err(RemoveLet { span });
|
||||
self.dcx().emit_err(RemoveLet { span: lo, suggestion: span });
|
||||
lo = self.token.span;
|
||||
}
|
||||
|
||||
|
13
tests/ui/parser/unnecessary-let.fixed
Normal file
13
tests/ui/parser/unnecessary-let.fixed
Normal file
@ -0,0 +1,13 @@
|
||||
//@ run-rustfix
|
||||
|
||||
fn main() {
|
||||
for _x in [1, 2, 3] {}
|
||||
//~^ ERROR expected pattern, found `let`
|
||||
//~| ERROR missing `in` in `for` loop
|
||||
|
||||
match 1 {
|
||||
1 => {}
|
||||
//~^ ERROR expected pattern, found `let`
|
||||
_ => {}
|
||||
}
|
||||
}
|
@ -1,5 +1,7 @@
|
||||
//@ run-rustfix
|
||||
|
||||
fn main() {
|
||||
for let x of [1, 2, 3] {}
|
||||
for let _x of [1, 2, 3] {}
|
||||
//~^ ERROR expected pattern, found `let`
|
||||
//~| ERROR missing `in` in `for` loop
|
||||
|
||||
|
@ -1,31 +1,31 @@
|
||||
error: expected pattern, found `let`
|
||||
--> $DIR/unnecessary-let.rs:2:9
|
||||
--> $DIR/unnecessary-let.rs:4:9
|
||||
|
|
||||
LL | for let x of [1, 2, 3] {}
|
||||
| ^^^^
|
||||
LL | for let _x of [1, 2, 3] {}
|
||||
| ^^^
|
||||
|
|
||||
help: remove the unnecessary `let` keyword
|
||||
|
|
||||
LL - for let x of [1, 2, 3] {}
|
||||
LL + for x of [1, 2, 3] {}
|
||||
LL - for let _x of [1, 2, 3] {}
|
||||
LL + for _x of [1, 2, 3] {}
|
||||
|
|
||||
|
||||
error: missing `in` in `for` loop
|
||||
--> $DIR/unnecessary-let.rs:2:15
|
||||
--> $DIR/unnecessary-let.rs:4:16
|
||||
|
|
||||
LL | for let x of [1, 2, 3] {}
|
||||
| ^^
|
||||
LL | for let _x of [1, 2, 3] {}
|
||||
| ^^
|
||||
|
|
||||
help: try using `in` here instead
|
||||
|
|
||||
LL | for let x in [1, 2, 3] {}
|
||||
| ~~
|
||||
LL | for let _x in [1, 2, 3] {}
|
||||
| ~~
|
||||
|
||||
error: expected pattern, found `let`
|
||||
--> $DIR/unnecessary-let.rs:7:9
|
||||
--> $DIR/unnecessary-let.rs:9:9
|
||||
|
|
||||
LL | let 1 => {}
|
||||
| ^^^^
|
||||
| ^^^
|
||||
|
|
||||
help: remove the unnecessary `let` keyword
|
||||
|
|
||||
|
Loading…
Reference in New Issue
Block a user