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