]> git.proxmox.com Git - rustc.git/blob - src/test/ui/mir/mir_codegen_switch.rs
New upstream version 1.64.0+dfsg1
[rustc.git] / src / test / ui / mir / mir_codegen_switch.rs
1 // run-pass
2 enum Abc {
3 A(#[allow(unused_tuple_struct_fields)] u8),
4 B(#[allow(unused_tuple_struct_fields)] i8),
5 C,
6 D,
7 }
8
9 fn foo(x: Abc) -> i32 {
10 match x {
11 Abc::C => 3,
12 Abc::D => 4,
13 Abc::B(_) => 2,
14 Abc::A(_) => 1,
15 }
16 }
17
18 fn foo2(x: Abc) -> bool {
19 match x {
20 Abc::D => true,
21 _ => false
22 }
23 }
24
25 fn main() {
26 assert_eq!(1, foo(Abc::A(42)));
27 assert_eq!(2, foo(Abc::B(-100)));
28 assert_eq!(3, foo(Abc::C));
29 assert_eq!(4, foo(Abc::D));
30
31 assert_eq!(false, foo2(Abc::A(1)));
32 assert_eq!(false, foo2(Abc::B(2)));
33 assert_eq!(false, foo2(Abc::C));
34 assert_eq!(true, foo2(Abc::D));
35 }