2 // compile-flags: -Z validate-mir
4 struct Foo<'a>(&'a mut u32);
6 impl<'a> Drop for Foo<'a> {
14 // This used to compile also before the fix
15 if true && *Foo(&mut foo).0 == 0 && ({ foo = 0; true}) {}
17 // This used to fail before the fix
18 if *Foo(&mut foo).0 == 0 && ({ foo = 0; true}) {}
25 // This used to compile also before the fix
26 if false || *Foo(&mut foo).0 == 1 || ({ foo = 0; true}) {}
28 // This used to fail before the fix
29 if *Foo(&mut foo).0 == 1 || ({ foo = 0; true}) {}