]> git.lizzy.rs Git - rust.git/blob - src/test/ui/mir/mir_build_match_comparisons.rs
Rollup merge of #62994 - iluuu1994:test-for-43398, r=nikomatsakis
[rust.git] / src / test / ui / mir / mir_build_match_comparisons.rs
1 // run-pass
2 #![allow(dead_code)]
3 fn test1(x: i8) -> i32 {
4   match x {
5     1..=10 => 0,
6     _ => 1,
7   }
8 }
9
10 const U: Option<i8> = Some(10);
11 const S: &'static str = "hello";
12
13 fn test2(x: i8) -> i32 {
14   match Some(x) {
15     U => 0,
16     _ => 1,
17   }
18 }
19
20 fn test3(x: &'static str) -> i32 {
21   match x {
22     S => 0,
23     _ => 1,
24   }
25 }
26
27 enum Opt<T> {
28     Some { v: T },
29     None
30 }
31
32 fn test4(x: u64) -> i32 {
33   let opt = Opt::Some{ v: x };
34   match opt {
35     Opt::Some { v: 10 } => 0,
36     _ => 1,
37   }
38 }
39
40
41 fn main() {
42   assert_eq!(test1(0), 1);
43   assert_eq!(test1(1), 0);
44   assert_eq!(test1(2), 0);
45   assert_eq!(test1(5), 0);
46   assert_eq!(test1(9), 0);
47   assert_eq!(test1(10), 0);
48   assert_eq!(test1(11), 1);
49   assert_eq!(test1(20), 1);
50   assert_eq!(test2(10), 0);
51   assert_eq!(test2(0), 1);
52   assert_eq!(test2(20), 1);
53   assert_eq!(test3("hello"), 0);
54   assert_eq!(test3(""), 1);
55   assert_eq!(test3("world"), 1);
56   assert_eq!(test4(10), 0);
57   assert_eq!(test4(0), 1);
58   assert_eq!(test4(20), 1);
59 }