]> git.lizzy.rs Git - rust.git/blob - src/test/ui/consts/consts-in-patterns.rs
Rollup merge of #70910 - rakshith-ravi:master, r=cuviper
[rust.git] / src / test / ui / consts / consts-in-patterns.rs
1 // run-pass
2 #![feature(const_transmute)]
3
4 const FOO: isize = 10;
5 const BAR: isize = 3;
6 const ZST: &() = unsafe { std::mem::transmute(1usize) };
7 const ZST_ARR: &[u8; 0] = unsafe { std::mem::transmute(1usize) };
8
9 const fn foo() -> isize { 4 }
10 const BOO: isize = foo();
11
12 pub fn main() {
13     let x: isize = 3;
14     let y = match x {
15         FOO => 1,
16         BAR => 2,
17         BOO => 4,
18         _ => 3
19     };
20     assert_eq!(y, 2);
21     let z = match &() {
22         ZST => 9,
23         // FIXME: this should not be required
24         _ => 42,
25     };
26     assert_eq!(z, 9);
27     let z = match b"" {
28         ZST_ARR => 10,
29     };
30     assert_eq!(z, 10);
31 }