Skip to content

Commit

Permalink
Auto merge of #116228 - bvanjoi:fix-116164, r=cjgillot
Browse files Browse the repository at this point in the history
resolve: skip underscore character during candidate lookup

Fixes #116164

In use statement, an underscore is merely a placeholder symbol and does not bind to any name. Therefore, it can be safely ignored.
  • Loading branch information
bors committed Oct 1, 2023
2 parents 6c29b45 + cfb819f commit 16b7b39
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 0 deletions.
4 changes: 4 additions & 0 deletions compiler/rustc_resolve/src/diagnostics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1169,6 +1169,10 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
return;
}

if ident.name == kw::Underscore {
return;
}

let child_accessible =
accessible && this.is_accessible_from(name_binding.vis, parent_scope.module);

Expand Down
19 changes: 19 additions & 0 deletions tests/ui/resolve/issue-116164.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#![allow(unused_imports)]

mod inner {
pub enum Example {
ExOne,
}
}

mod reexports {
pub use crate::inner::Example as _;
}

use crate::reexports::*;
//~^ SUGGESTION: use inner::Example::ExOne

fn main() {
ExOne;
//~^ ERROR: cannot find value `ExOne` in this scope
}
14 changes: 14 additions & 0 deletions tests/ui/resolve/issue-116164.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
error[E0425]: cannot find value `ExOne` in this scope
--> $DIR/issue-116164.rs:17:5
|
LL | ExOne;
| ^^^^^ not found in this scope
|
help: consider importing this unit variant
|
LL + use inner::Example::ExOne;
|

error: aborting due to previous error

For more information about this error, try `rustc --explain E0425`.

0 comments on commit 16b7b39

Please sign in to comment.