File: issue-56685.rs

package info (click to toggle)
rustc 1.85.0%2Bdfsg3-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental, sid, trixie
  • size: 893,396 kB
  • sloc: xml: 158,127; python: 35,830; javascript: 19,497; cpp: 19,002; sh: 17,245; ansic: 13,127; asm: 4,376; makefile: 1,051; perl: 29; lisp: 29; ruby: 19; sql: 11
file content (44 lines) | stat: -rw-r--r-- 895 bytes parent folder | download | duplicates (17)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#![allow(dead_code)]
#![deny(unused_variables)]

// This test aims to check that unused variable suggestions update bindings in all
// match arms.

fn main() {
    enum E {
        A(i32,),
        B(i32,),
    }

    match E::A(1) {
        E::A(x) | E::B(x) => {}
        //~^ ERROR unused variable: `x`
    }

    enum F {
        A(i32, i32,),
        B(i32, i32,),
        C(i32, i32,),
    }

    let _ = match F::A(1, 2) {
        F::A(x, y) | F::B(x, y) => { y },
        //~^ ERROR unused variable: `x`
        F::C(a, b) => { 3 }
        //~^ ERROR unused variable: `a`
        //~^^ ERROR unused variable: `b`
    };

    let _ = if let F::A(x, y) | F::B(x, y) = F::A(1, 2) {
    //~^ ERROR unused variable: `x`
        y
    } else {
        3
    };

    while let F::A(x, y) | F::B(x, y) = F::A(1, 2) {
    //~^ ERROR unused variable: `x`
        let _ = y;
        break;
    }
}