2021-01-29 07:33:15 +00:00
|
|
|
//@ run-rustfix
|
|
|
|
#![allow(dead_code)]
|
|
|
|
|
|
|
|
struct A {
|
|
|
|
b: B,
|
|
|
|
}
|
|
|
|
|
|
|
|
enum B {
|
|
|
|
Fst,
|
|
|
|
Snd,
|
|
|
|
}
|
|
|
|
|
2021-01-30 05:18:50 +00:00
|
|
|
union Foo {
|
|
|
|
bar: u32,
|
|
|
|
qux: f32,
|
|
|
|
}
|
|
|
|
|
2021-01-29 07:33:15 +00:00
|
|
|
fn main() {
|
|
|
|
let a = A { b: B::Fst };
|
2021-01-30 04:42:01 +00:00
|
|
|
if let B::Fst = a.b {}; //~ ERROR mismatched types [E0308]
|
2021-02-02 06:14:24 +00:00
|
|
|
//~^ HELP you might have meant to use field `b` whose type is `B`
|
2021-01-29 07:33:15 +00:00
|
|
|
match a.b {
|
2021-02-02 06:14:24 +00:00
|
|
|
//~^ 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`
|
2021-01-30 04:42:01 +00:00
|
|
|
B::Fst => (), //~ ERROR mismatched types [E0308]
|
|
|
|
B::Snd => (), //~ ERROR mismatched types [E0308]
|
2021-01-29 07:33:15 +00:00
|
|
|
}
|
2021-01-30 05:18:50 +00:00
|
|
|
|
|
|
|
let foo = Foo { bar: 42 };
|
|
|
|
match unsafe { foo.bar } {
|
2021-02-02 06:14:24 +00:00
|
|
|
//~^ HELP you might have meant to use field `bar` whose type is `u32`
|
2021-01-30 05:18:50 +00:00
|
|
|
1u32 => (), //~ ERROR mismatched types [E0308]
|
|
|
|
_ => (),
|
|
|
|
}
|
2021-01-29 07:33:15 +00:00
|
|
|
}
|