File: resolve-inconsistent-names.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 (36 lines) | stat: -rw-r--r-- 1,142 bytes parent folder | download | duplicates (8)
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
#![allow(non_camel_case_types)]

enum E { A, B, c }

pub mod m {
    const CONST1: usize = 10;
    pub const Const2: usize = 20;
}

fn main() {
    let y = 1;
    match y {
       a | b => {} //~  ERROR variable `a` is not bound in all patterns
                   //~| ERROR variable `b` is not bound in all patterns
    }

    let x = (E::A, E::B);
    match x {
        (A, B) | (ref B, c) | (c, A) => ()
        //~^ ERROR variable `A` is not bound in all patterns
        //~| ERROR variable `B` is not bound in all patterns
        //~| ERROR variable `B` is bound inconsistently
        //~| ERROR mismatched types
        //~| ERROR variable `c` is not bound in all patterns
        //~| HELP if you meant to match on unit variant `E::A`, use the full path in the pattern
        //~| HELP consider removing `ref`
    }

    let z = (10, 20);
    match z {
        (CONST1, _) | (_, Const2) => ()
        //~^ ERROR variable `CONST1` is not bound in all patterns
        //~| ERROR variable `Const2` is not bound in all patterns
        //~| HELP if you meant to match on constant `m::Const2`, use the full path in the pattern
    }
}