File: union-fields-2.rs

package info (click to toggle)
rustc-web 1.78.0%2Bdfsg1-2~deb11u3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 1,245,360 kB
  • sloc: xml: 147,985; javascript: 18,022; sh: 11,083; python: 10,265; ansic: 6,172; cpp: 5,023; asm: 4,390; makefile: 4,269
file content (23 lines) | stat: -rw-r--r-- 1,146 bytes parent folder | download | duplicates (12)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
union U {
    a: u8,
    b: u16,
}

fn main() {
    let u = U {}; //~ ERROR union expressions should have exactly one field
    let u = U { a: 0 }; // OK
    let u = U { a: 0, b: 1 }; //~ ERROR union expressions should have exactly one field
    let u = U { a: 0, b: 1, c: 2 }; //~ ERROR union expressions should have exactly one field
                                    //~^ ERROR union `U` has no field named `c`
    let u = U { ..u }; //~ ERROR union expressions should have exactly one field
                       //~^ ERROR functional record update syntax requires a struct

    let U {} = u; //~ ERROR union patterns should have exactly one field
    let U { a } = u; // OK
    let U { a, b } = u; //~ ERROR union patterns should have exactly one field
    let U { a, b, c } = u; //~ ERROR union patterns should have exactly one field
                           //~^ ERROR union `U` does not have a field named `c`
    let U { .. } = u; //~ ERROR union patterns should have exactly one field
                      //~^ ERROR `..` cannot be used in union patterns
    let U { a, .. } = u; //~ ERROR `..` cannot be used in union patterns
}