]> git.proxmox.com Git - rustc.git/blame - src/test/mir-opt/deaggregator_test_enum.rs
New upstream version 1.23.0+dfsg1
[rustc.git] / src / test / mir-opt / deaggregator_test_enum.rs
CommitLineData
5bcae85e
SL
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.
4//
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.
10
11enum Baz {
12 Empty,
13 Foo { x: usize },
14}
15
16fn bar(a: usize) -> Baz {
17 Baz::Foo { x: a }
18}
19
20fn main() {
21 let x = bar(10);
22 match x {
23 Baz::Empty => println!("empty"),
24 Baz::Foo { x } => println!("{}", x),
25 };
26}
27
28// END RUST SOURCE
abe05a73 29// START rustc.bar.Deaggregator.before.mir
5bcae85e 30// bb0: {
abe05a73 31// StorageLive(_2);
c30ab7b3 32// _2 = _1;
abe05a73
XL
33// _0 = Baz::Foo { x: _2 };
34// StorageDead(_2);
c30ab7b3 35// return;
5bcae85e 36// }
abe05a73
XL
37// END rustc.bar.Deaggregator.before.mir
38// START rustc.bar.Deaggregator.after.mir
5bcae85e 39// bb0: {
abe05a73 40// StorageLive(_2);
c30ab7b3 41// _2 = _1;
abe05a73 42// ((_0 as Foo).0: usize) = _2;
c30ab7b3 43// discriminant(_0) = 1;
abe05a73 44// StorageDead(_2);
c30ab7b3 45// return;
5bcae85e 46// }
abe05a73 47// END rustc.bar.Deaggregator.after.mir