rust/tests/ui/did_you_mean/compatible-variants-in-pat....

69 lines
1.8 KiB
Plaintext

error[E0308]: mismatched types
--> $DIR/compatible-variants-in-pat.rs:10:9
|
LL | match f {
| - this expression has type `Foo`
LL | Bar { x } => {
| ^^^^^^^^^ expected `Foo`, found `Bar`
|
help: try wrapping the pattern in `Foo::Bar`
|
LL | Foo::Bar(Bar { x }) => {
| +++++++++ +
error[E0308]: mismatched types
--> $DIR/compatible-variants-in-pat.rs:21:9
|
LL | struct S;
| -------- unit struct defined here
...
LL | match s {
| - this expression has type `Option<S>`
LL | S => {
| ^
| |
| expected `Option<S>`, found `S`
| `S` is interpreted as a unit struct, not a new binding
|
= note: expected enum `Option<S>`
found struct `S`
help: try wrapping the pattern in `Some`
|
LL | Some(S) => {
| +++++ +
help: introduce a new binding instead
|
LL | other_s => {
| ~~~~~~~
error[E0308]: mismatched types
--> $DIR/compatible-variants-in-pat.rs:32:9
|
LL | struct S;
| -------- unit struct defined here
...
LL | match s {
| - this expression has type `Result<S, S>`
LL | S => {
| ^
| |
| expected `Result<S, S>`, found `S`
| `S` is interpreted as a unit struct, not a new binding
|
= note: expected enum `Result<S, S>`
found struct `S`
help: try wrapping the pattern in a variant of `Result`
|
LL | Ok(S) => {
| +++ +
LL | Err(S) => {
| ++++ +
help: introduce a new binding instead
|
LL | other_s => {
| ~~~~~~~
error: aborting due to 3 previous errors
For more information about this error, try `rustc --explain E0308`.