Open
Description
Given the following code, I would've expected rustc to mention the cfg'ed out item Struct
:
#[cfg(flag)]
struct Struct;
fn main() { let _ = Struct; } //~ ERROR cannot find type `Struct` in this scope
but it doesn't:
error[E0425]: cannot find value `Struct` in this scope
--> file.rs:4:21
|
4 | fn main() { let _ = Struct; }
| ^^^^^^ not found in this scope
Only if you slightly tweak the input by replacing the simple path Struct
with a complex one like self::Struct
or crate::Struct
, the note "found an item that was configured out" will show up:
#[cfg(flag)]
struct Struct;
fn main() { let _ = self::Struct; }
error[E0425]: cannot find value `Struct` in module `self`
--> file.rs:4:27
|
4 | fn main() { let _ = self::Struct; }
| ^^^^^^ not found in `self`
|
note: found an item that was configured out
--> file.rs:2:8
|
2 | struct Struct;
| ^^^^^^
note: the item is gated here
--> file.rs:1:1
|
1 | #[cfg(flag)]
| ^^^^^^^^^^^^
CC #109005. I don't know if that's intentional or not.
Metadata
Metadata
Assignees
Labels
Area: `cfg` conditional compilationArea: Messages for errors, warnings, and lintsArea: Name/path resolution done by `rustc_resolve` specificallyDiagnostics: An error or lint that doesn't give enough information about the problem at hand.Relevant to the compiler team, which will review and decide on the PR/issue.