2 #![allow(unreachable_code)]
4 #[derive(PartialEq, Debug)]
10 assert_eq!(self.x, 22);
14 #[derive(PartialEq, Debug)]
20 fn foo() -> Result<Foo, isize> {
27 fn baz() -> Result<Foo, isize> {
34 // explicit immediate return
39 // implicit immediate return
44 // implicit outptr return
45 fn cc() -> Result<isize, isize> {
49 // explicit outptr return
50 fn dd() -> Result<isize, isize> {
55 fn aaa(&self) -> isize {
58 fn bbb(&self) -> isize {
61 fn ccc(&self) -> Result<isize, isize> {
64 fn ddd(&self) -> Result<isize, isize> {
72 assert_eq!(foo(), Err(32));
73 assert_eq!(baz(), Err(32));
77 assert_eq!(cc().unwrap(), 3);
78 assert_eq!(dd().unwrap(), 3);
80 let i = Box::new(32isize) as Box<dyn A>;
81 assert_eq!(i.aaa(), 3);
82 let i = Box::new(32isize) as Box<dyn A>;
83 assert_eq!(i.bbb(), 3);
84 let i = Box::new(32isize) as Box<dyn A>;
85 assert_eq!(i.ccc().unwrap(), 3);
86 let i = Box::new(32isize) as Box<dyn A>;
87 assert_eq!(i.ddd().unwrap(), 3);