37196e3691
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.
28 lines
820 B
Plaintext
28 lines
820 B
Plaintext
error[E0560]: struct `S` has no field named `0b1`
|
|
--> $DIR/numeric-fields.rs:4:15
|
|
|
|
|
LL | struct S(u8, u16);
|
|
| - `S` defined here
|
|
...
|
|
LL | let s = S{0b1: 10, 0: 11};
|
|
| ^^^ field does not exist
|
|
|
|
|
help: `S` is a tuple struct, use the appropriate syntax
|
|
|
|
|
LL | let s = S(/* fields */);
|
|
| ~~~~~~~~~~~~~~~
|
|
|
|
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
|
|
| help: `S` has a field named `1`
|
|
|
|
error: aborting due to 2 previous errors
|
|
|
|
Some errors have detailed explanations: E0026, E0560.
|
|
For more information about an error, try `rustc --explain E0026`.
|