| //@ check-pass | |
| #![allow(unused_assignments)] | |
| #![allow(unused_variables)] | |
| // Test that a field can have the same name in different variants | |
| // of an enum | |
| pub enum Foo { | |
| X { foo: u32 }, | |
| Y { foo: u32 } | |
| } | |
| pub fn foo(mut x: Foo) { | |
| let mut y = None; | |
| let mut z = None; | |
| if let Foo::X { ref foo } = x { | |
| z = Some(foo); | |
| } | |
| if let Foo::Y { ref mut foo } = x { | |
| y = Some(foo); | |
| } | |
| } | |
| fn main() {} |