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() -> isize14 fn ret_int_i() -> isize { 10 }
15 
ret_ext_i() -> Box<isize>16 fn ret_ext_i() -> Box<isize> { Box::new(10) }
17 
ret_int_rec() -> A18 fn ret_int_rec() -> A { A {a: 10, b: 10} }
19 
ret_ext_rec() -> Box<A>20 fn ret_ext_rec() -> Box<A> { Box::new(A {a: 10, b: 10}) }
21 
ret_ext_mem() -> Abox22 fn ret_ext_mem() -> Abox { Abox {a: Box::new(10), b: Box::new(10) } }
23 
ret_ext_ext_mem() -> Box<Abox>24 fn ret_ext_ext_mem() -> Box<Abox> { Box::new(Abox{a: Box::new(10), b: Box::new(10) }) }
25 
main()26 pub 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