1 // run-pass 2 3 #![allow(dead_code)] 4 #![allow(unused_assignments)] 5 #![allow(unknown_lints)] 6 // pretty-expanded FIXME #23616 7 8 #![allow(dead_assignment)] 9 #![allow(unused_variables)] 10 11 struct A { a: isize, b: isize } 12 struct Abox { a: Box<isize>, b: Box<isize> } 13 ret_int_i() -> isize14fn ret_int_i() -> isize { 10 } 15 ret_ext_i() -> Box<isize>16fn ret_ext_i() -> Box<isize> { Box::new(10) } 17 ret_int_rec() -> A18fn ret_int_rec() -> A { A {a: 10, b: 10} } 19 ret_ext_rec() -> Box<A>20fn ret_ext_rec() -> Box<A> { Box::new(A {a: 10, b: 10}) } 21 ret_ext_mem() -> Abox22fn ret_ext_mem() -> Abox { Abox {a: Box::new(10), b: Box::new(10) } } 23 ret_ext_ext_mem() -> Box<Abox>24fn ret_ext_ext_mem() -> Box<Abox> { Box::new(Abox{a: Box::new(10), b: Box::new(10) }) } 25 main()26pub fn main() { 27 let mut int_i: isize; 28 let mut ext_i: Box<isize>; 29 let mut int_rec: A; 30 let mut ext_rec: Box<A>; 31 let mut ext_mem: Abox; 32 let mut ext_ext_mem: Box<Abox>; 33 int_i = ret_int_i(); // initializing 34 35 int_i = ret_int_i(); // non-initializing 36 37 int_i = ret_int_i(); // non-initializing 38 39 ext_i = ret_ext_i(); // initializing 40 41 ext_i = ret_ext_i(); // non-initializing 42 43 ext_i = ret_ext_i(); // non-initializing 44 45 int_rec = ret_int_rec(); // initializing 46 47 int_rec = ret_int_rec(); // non-initializing 48 49 int_rec = ret_int_rec(); // non-initializing 50 51 ext_rec = ret_ext_rec(); // initializing 52 53 ext_rec = ret_ext_rec(); // non-initializing 54 55 ext_rec = ret_ext_rec(); // non-initializing 56 57 ext_mem = ret_ext_mem(); // initializing 58 59 ext_mem = ret_ext_mem(); // non-initializing 60 61 ext_mem = ret_ext_mem(); // non-initializing 62 63 ext_ext_mem = ret_ext_ext_mem(); // initializing 64 65 ext_ext_mem = ret_ext_ext_mem(); // non-initializing 66 67 ext_ext_mem = ret_ext_ext_mem(); // non-initializing 68 69 } 70