2 #![allow(unreachable_code)]
3 #![feature(box_syntax)]
5 #[derive(PartialEq, Debug)]
11 assert_eq!(self.x, 22);
15 #[derive(PartialEq, Debug)]
21 fn foo() -> Result<Foo, isize> {
28 fn baz() -> Result<Foo, isize> {
35 // explicit immediate return
40 // implicit immediate return
45 // implicit outptr return
46 fn cc() -> Result<isize, isize> {
50 // explicit outptr return
51 fn dd() -> Result<isize, isize> {
56 fn aaa(&self) -> isize {
59 fn bbb(&self) -> isize {
62 fn ccc(&self) -> Result<isize, isize> {
65 fn ddd(&self) -> Result<isize, isize> {
73 assert_eq!(foo(), Err(32));
74 assert_eq!(baz(), Err(32));
78 assert_eq!(cc().unwrap(), 3);
79 assert_eq!(dd().unwrap(), 3);
81 let i = box 32isize as Box<dyn A>;
82 assert_eq!(i.aaa(), 3);
83 let i = box 32isize as Box<dyn A>;
84 assert_eq!(i.bbb(), 3);
85 let i = box 32isize as Box<dyn A>;
86 assert_eq!(i.ccc().unwrap(), 3);
87 let i = box 32isize as Box<dyn A>;
88 assert_eq!(i.ddd().unwrap(), 3);