aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/rust/compile/match8.rs
blob: 336b313cde3e2b4308d1ee65ab8b2cb7e59fd8f4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
union MyUnion {
    f1: u32,
    f2: f32,
}

fn f(u: MyUnion) -> i32 {
    unsafe {
        match u {
            MyUnion { f1: 10 } => 0,
            MyUnion { f2 } => 0,
            MyUnion { f1: 10, f2: 10.0 } => 0, // { dg-error "union patterns should have exactly one field" "" }
            MyUnion {} => 0, // { dg-error "union patterns should have exactly one field" "" }
            MyUnion { f1: () } => 0, // { dg-error "expected u32, found tuple" "" }
            _ => 1,
        }
    }
}

fn main() {}