Suggest replacing an inexisting field for an unmentioned field
This PR adds a suggestion to replace an inexisting field for an
unmentioned field. Given the following code:
```rust
enum Foo {
Bar { alpha: u8, bravo: u8, charlie: u8 },
}
fn foo(foo: Foo) {
match foo {
Foo::Bar {
alpha,
beta, // `bravo` miswritten as `beta` here.
charlie,
} => todo!(),
}
}
```
the compiler now emits the error messages below.
```text
error[E0026]: variant `Foo::Bar` does not have a field named `beta`
--> src/lib.rs:9:13
|
9 | beta, // `bravo` miswritten as `beta` here.
| ^^^^
| |
| variant `Foo::Bar` does not have this field
| help: `Foo::Bar` has a field named `bravo`: `bravo`
```
Note that this suggestion is available iff the number of inexisting
fields and unmentioned fields are both 1.
This commit is contained in:
parent
c6f32f3750
commit
37196e3691
3 changed files with 22 additions and 3 deletions
|
|
@ -2,7 +2,10 @@ error[E0026]: struct `SimpleStruct` does not have a field named `state`
|
|||
--> $DIR/issue-51102.rs:13:17
|
||||
|
|
||||
LL | state: 0,
|
||||
| ^^^^^ struct `SimpleStruct` does not have this field
|
||||
| ^^^^^
|
||||
| |
|
||||
| struct `SimpleStruct` does not have this field
|
||||
| help: `SimpleStruct` has a field named `no_state_here`
|
||||
|
||||
error[E0025]: field `no_state_here` bound multiple times in the pattern
|
||||
--> $DIR/issue-51102.rs:24:17
|
||||
|
|
|
|||
|
|
@ -16,7 +16,10 @@ error[E0026]: struct `S` does not have a field named `0x1`
|
|||
--> $DIR/numeric-fields.rs:7:17
|
||||
|
|
||||
LL | S{0: a, 0x1: b, ..} => {}
|
||||
| ^^^ struct `S` does not have this field
|
||||
| ^^^
|
||||
| |
|
||||
| struct `S` does not have this field
|
||||
| help: `S` has a field named `1`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue