]> git.lizzy.rs Git - rust.git/blob - tests/ui/output-slot-variants.rs
Rollup merge of #107576 - P1n3appl3:master, r=tmandry
[rust.git] / tests / ui / output-slot-variants.rs
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
14 fn ret_int_i() -> isize { 10 }
15
16 fn ret_ext_i() -> Box<isize> { Box::new(10) }
17
18 fn ret_int_rec() -> A { A {a: 10, b: 10} }
19
20 fn ret_ext_rec() -> Box<A> { Box::new(A {a: 10, b: 10}) }
21
22 fn ret_ext_mem() -> Abox { Abox {a: Box::new(10), b: Box::new(10) } }
23
24 fn ret_ext_ext_mem() -> Box<Abox> { Box::new(Abox{a: Box::new(10), b: Box::new(10) }) }
25
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 }