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