1+ //! Check that output slots work correctly for both initializing and non-initializing assignments.
2+ //!
3+ //! Regression test for <https://github.com/rust-lang/rust/issues/24>.
4+
15//@ run-pass
26
37#![allow(dead_code)]
48#![allow(unused_assignments)]
59#![allow(unknown_lints)]
6-
710#![allow(dead_assignment)]
811#![allow(unused_variables)]
912
10- struct A { a: isize, b: isize }
11- struct Abox { a: Box<isize>, b: Box<isize> }
13+ struct A {
14+ a: isize,
15+ b: isize,
16+ }
1217
13- fn ret_int_i() -> isize { 10 }
18+ struct Abox {
19+ a: Box<isize>,
20+ b: Box<isize>,
21+ }
1422
15- fn ret_ext_i() -> Box<isize> { Box::new(10) }
23+ fn ret_int_i() -> isize {
24+ 10
25+ }
1626
17- fn ret_int_rec() -> A { A {a: 10, b: 10} }
27+ fn ret_ext_i() -> Box<isize> {
28+ Box::new(10)
29+ }
1830
19- fn ret_ext_rec() -> Box<A> { Box::new(A {a: 10, b: 10}) }
31+ fn ret_int_rec() -> A {
32+ A { a: 10, b: 10 }
33+ }
2034
21- fn ret_ext_mem() -> Abox { Abox {a: Box::new(10), b: Box::new(10) } }
35+ fn ret_ext_rec() -> Box<A> {
36+ Box::new(A { a: 10, b: 10 })
37+ }
38+
39+ fn ret_ext_mem() -> Abox {
40+ Abox { a: Box::new(10), b: Box::new(10) }
41+ }
2242
23- fn ret_ext_ext_mem() -> Box<Abox> { Box::new(Abox{a: Box::new(10), b: Box::new(10) }) }
43+ fn ret_ext_ext_mem() -> Box<Abox> {
44+ Box::new(Abox { a: Box::new(10), b: Box::new(10) })
45+ }
2446
2547pub fn main() {
2648 let mut int_i: isize;
@@ -29,40 +51,28 @@ pub fn main() {
2951 let mut ext_rec: Box<A>;
3052 let mut ext_mem: Abox;
3153 let mut ext_ext_mem: Box<Abox>;
32- int_i = ret_int_i(); // initializing
3354
55+ int_i = ret_int_i(); // initializing
3456 int_i = ret_int_i(); // non-initializing
35-
3657 int_i = ret_int_i(); // non-initializing
3758
3859 ext_i = ret_ext_i(); // initializing
39-
4060 ext_i = ret_ext_i(); // non-initializing
41-
4261 ext_i = ret_ext_i(); // non-initializing
4362
4463 int_rec = ret_int_rec(); // initializing
45-
4664 int_rec = ret_int_rec(); // non-initializing
47-
4865 int_rec = ret_int_rec(); // non-initializing
4966
5067 ext_rec = ret_ext_rec(); // initializing
51-
5268 ext_rec = ret_ext_rec(); // non-initializing
53-
5469 ext_rec = ret_ext_rec(); // non-initializing
5570
5671 ext_mem = ret_ext_mem(); // initializing
57-
5872 ext_mem = ret_ext_mem(); // non-initializing
59-
6073 ext_mem = ret_ext_mem(); // non-initializing
6174
6275 ext_ext_mem = ret_ext_ext_mem(); // initializing
63-
6476 ext_ext_mem = ret_ext_ext_mem(); // non-initializing
65-
6677 ext_ext_mem = ret_ext_ext_mem(); // non-initializing
67-
6878}
0 commit comments