| //@ run-rustfix | |
| #![allow(dead_code)] | |
| struct A { | |
| b: B, | |
| } | |
| enum B { | |
| Fst, | |
| Snd, | |
| } | |
| union Foo { | |
| bar: u32, | |
| qux: f32, | |
| } | |
| fn main() { | |
| let a = A { b: B::Fst }; | |
| if let B::Fst = a.b {}; //~ ERROR mismatched types [E0308] | |
| //~^ HELP you might have meant to use field `b` whose type is `B` | |
| match a.b { | |
| //~^ HELP you might have meant to use field `b` whose type is `B` | |
| //~| HELP you might have meant to use field `b` whose type is `B` | |
| B::Fst => (), //~ ERROR mismatched types [E0308] | |
| B::Snd => (), //~ ERROR mismatched types [E0308] | |
| } | |
| let foo = Foo { bar: 42 }; | |
| match unsafe { foo.bar } { | |
| //~^ HELP you might have meant to use field `bar` whose type is `u32` | |
| 1u32 => (), //~ ERROR mismatched types [E0308] | |
| _ => (), | |
| } | |
| } |