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