File: diagnostics-same-crate.rs

package info (click to toggle)
rustc 1.86.0%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental, forky, sid
  • size: 913,560 kB
  • sloc: xml: 158,127; python: 35,921; javascript: 19,689; sh: 19,600; cpp: 18,906; ansic: 13,124; asm: 4,376; makefile: 708; perl: 29; lisp: 29; ruby: 19; sql: 11
file content (66 lines) | stat: -rw-r--r-- 2,327 bytes parent folder | download | duplicates (7)
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#![allow(unexpected_cfgs)] // since we want to recognize them as unexpected

pub mod inner {
    #[cfg(FALSE)] //~ NOTE the item is gated here
    pub fn uwu() {}
    //~^ NOTE found an item that was configured out

    #[cfg(FALSE)] //~ NOTE the item is gated here
    //~^ NOTE the item is gated here
    //~| NOTE the item is gated here
    pub mod doesnt_exist {
        //~^ NOTE found an item that was configured out
        //~| NOTE found an item that was configured out
        //~| NOTE found an item that was configured out
        pub fn hello() {}
        pub mod hi {}
    }

    pub mod wrong {
        #[cfg(feature = "suggesting me fails the test!!")]
        pub fn meow() {}
    }

    pub mod right {
        #[cfg(feature = "what-a-cool-feature")] //~ NOTE the item is gated behind the `what-a-cool-feature` feature
        pub fn meow() {}
        //~^ NOTE found an item that was configured out
    }
}

mod placeholder {
    use super::inner::doesnt_exist;
    //~^ ERROR unresolved import `super::inner::doesnt_exist`
    //~| NOTE no `doesnt_exist` in `inner`
    use super::inner::doesnt_exist::hi;
    //~^ ERROR unresolved import `super::inner::doesnt_exist`
    //~| NOTE could not find `doesnt_exist` in `inner`
}

#[cfg(i_dont_exist_and_you_can_do_nothing_about_it)]
pub fn vanished() {}

fn main() {
    // There is no uwu at this path - no diagnostic.
    uwu(); //~ ERROR cannot find function
    //~^ NOTE not found in this scope

    // It does exist here - diagnostic.
    inner::uwu(); //~ ERROR cannot find function
    //~| NOTE not found in `inner`

    // The module isn't found - we would like to get a diagnostic, but currently don't due to
    // the awkward way the resolver diagnostics are currently implemented.
    inner::doesnt_exist::hello(); //~ ERROR failed to resolve
    //~| NOTE could not find `doesnt_exist` in `inner`

    // It should find the one in the right module, not the wrong one.
    inner::right::meow(); //~ ERROR cannot find function
    //~| NOTE not found in `inner::right

    // Exists in the crate root - we would generally want a diagnostic,
    // but currently don't have one.
    // Not that it matters much though, this is highly unlikely to confuse anyone.
    vanished(); //~ ERROR cannot find function
    //~^ NOTE not found in this scope
}