| //@ run-pass | |
| #![allow(dead_code)] | |
| #[derive(Debug)] | |
| enum MyEnum { | |
| Variant1(Vec<u8>), | |
| Variant2, | |
| Variant3, | |
| Variant4, | |
| } | |
| fn f(arg1: &bool, arg2: &bool, arg3: bool) -> MyStruct { | |
| if *arg1 { | |
| println!("{:?}", f(&arg2, arg2, arg3)); | |
| MyStruct(None) | |
| } else { | |
| match if arg3 { Some(MyEnum::Variant3) } else { None } { | |
| Some(t) => { | |
| let ah = t; | |
| return MyStruct(Some(ah)); | |
| } | |
| _ => MyStruct(None) | |
| } | |
| } | |
| } | |
| #[derive(Debug)] | |
| struct MyStruct(Option<MyEnum>); | |
| fn main() { | |
| let arg1 = true; | |
| let arg2 = false; | |
| f(&arg1, &arg2, true); | |
| } |