]> git.lizzy.rs Git - rust.git/blob - src/test/mir-opt/uniform_array_move_out.rs
Simplify SaveHandler trait
[rust.git] / src / test / mir-opt / uniform_array_move_out.rs
1 #![feature(box_syntax)]
2 #![feature(slice_patterns)]
3
4 fn move_out_from_end() {
5     let a = [box 1, box 2];
6     let [.., _y] = a;
7 }
8
9 fn move_out_by_subslice() {
10     let a = [box 1, box 2];
11     let [_y..] = a;
12 }
13
14 fn main() {
15     move_out_by_subslice();
16     move_out_from_end();
17 }
18
19 // END RUST SOURCE
20
21 // START rustc.move_out_from_end.UniformArrayMoveOut.before.mir
22 //     StorageLive(_6);
23 //      _6 = move _1[-1 of 1];
24 //      _0 = ();
25 // END rustc.move_out_from_end.UniformArrayMoveOut.before.mir
26
27 // START rustc.move_out_from_end.UniformArrayMoveOut.after.mir
28 //     StorageLive(_6);
29 //      _6 = move _1[1 of 2];
30 //      nop;
31 //      _0 = ();
32 // END rustc.move_out_from_end.UniformArrayMoveOut.after.mir
33
34 // START rustc.move_out_by_subslice.UniformArrayMoveOut.before.mir
35 //     StorageLive(_6);
36 //      _6 = move _1[0:];
37 // END rustc.move_out_by_subslice.UniformArrayMoveOut.before.mir
38
39 // START rustc.move_out_by_subslice.UniformArrayMoveOut.after.mir
40 //     StorageLive(_6);
41 //     StorageLive(_7);
42 //     _7 = move _1[0 of 2];
43 //     StorageLive(_8);
44 //     _8 = move _1[1 of 2];
45 //     _6 = [move _7, move _8];
46 //     StorageDead(_7);
47 //     StorageDead(_8);
48 //     nop;
49 //     _0 = ();
50 // END rustc.move_out_by_subslice.UniformArrayMoveOut.after.mir
51
52 // START rustc.move_out_by_subslice.RestoreSubsliceArrayMoveOut.before.mir
53 //     StorageLive(_6);
54 //     StorageLive(_7);
55 //     _7 = move _1[0 of 2];
56 //     StorageLive(_8);
57 //     _8 = move _1[1 of 2];
58 //     _6 = [move _7, move _8];
59 //     StorageDead(_7);
60 //     StorageDead(_8);
61 //     _0 = ();
62 // END rustc.move_out_by_subslice.RestoreSubsliceArrayMoveOut.before.mir
63
64 // START rustc.move_out_by_subslice.RestoreSubsliceArrayMoveOut.after.mir
65 //     StorageLive(_6);
66 //     nop;
67 //     nop;
68 //     nop;
69 //     nop;
70 //     _6 = move _1[0:];
71 //     nop;
72 //     nop;
73 //     nop;
74 //     _0 = ();
75 // END rustc.move_out_by_subslice.RestoreSubsliceArrayMoveOut.after.mir