]> git.lizzy.rs Git - rust.git/blob - src/test/run-pass/const-enum-vec-index.rs
Auto merge of #28816 - petrochenkov:unistruct, r=nrc
[rust.git] / src / test / run-pass / const-enum-vec-index.rs
1 // Copyright 2013 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
11
12 enum E { V1(isize), V0 }
13 const C: &'static [E] = &[E::V0, E::V1(0xDEADBEE)];
14 static C0: E = C[0];
15 static C1: E = C[1];
16 const D: &'static [E; 2] = &[E::V0, E::V1(0xDEADBEE)];
17 static D0: E = C[0];
18 static D1: E = C[1];
19
20 pub fn main() {
21     match C0 {
22         E::V0 => (),
23         _ => panic!()
24     }
25     match C1 {
26         E::V1(n) => assert_eq!(n, 0xDEADBEE),
27         _ => panic!()
28     }
29
30     match D0 {
31         E::V0 => (),
32         _ => panic!()
33     }
34     match D1 {
35         E::V1(n) => assert_eq!(n, 0xDEADBEE),
36         _ => panic!()
37     }
38 }