1 // Copyright 2016 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
11 // Test that deaggregate fires more than once per block
18 fn test(x: i32) -> [Foo; 2] {
19 [Foo::A(x), Foo::A(x)]
23 // Make sure the function actually gets instantiated.
28 // START rustc.test.Deaggregator.before.mir
33 // _2 = Foo::A(move _3,);
36 // _4 = Foo::A(move _5,);
38 // _0 = [move _2, move _4];
42 // END rustc.test.Deaggregator.before.mir
43 // START rustc.test.Deaggregator.after.mir
48 // ((_2 as A).0: i32) = move _3;
49 // discriminant(_2) = 0;
52 // ((_4 as A).0: i32) = move _5;
53 // discriminant(_4) = 0;
55 // _0 = [move _2, move _4];
59 // END rustc.test.Deaggregator.after.mir