Rollup merge of #90127 - JohnTitor:fix-90113, r=estebank
Do not mention a reexported item if it's private Fixes #90113 The _actual_ regression was introduced in #73652, then #88838 made it worse. This fixes the issue by not counting such an import as a candidate.
This commit is contained in:
commit
c734a9e076
3 changed files with 44 additions and 0 deletions
|
@ -829,6 +829,15 @@ impl<'a> Resolver<'a> {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// #90113: Do not count an inaccessible reexported item as a candidate.
|
||||||
|
if let NameBindingKind::Import { binding, .. } = name_binding.kind {
|
||||||
|
if this.is_accessible_from(binding.vis, parent_scope.module)
|
||||||
|
&& !this.is_accessible_from(name_binding.vis, parent_scope.module)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// collect results based on the filter function
|
// collect results based on the filter function
|
||||||
// avoid suggesting anything from the same module in which we are resolving
|
// avoid suggesting anything from the same module in which we are resolving
|
||||||
if ident.name == lookup_ident.name
|
if ident.name == lookup_ident.name
|
||||||
|
|
21
src/test/ui/resolve/issue-90113.rs
Normal file
21
src/test/ui/resolve/issue-90113.rs
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
mod list {
|
||||||
|
pub use self::List::Cons;
|
||||||
|
|
||||||
|
pub enum List<T> {
|
||||||
|
Cons(T, Box<List<T>>),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
mod alias {
|
||||||
|
use crate::list::List;
|
||||||
|
|
||||||
|
pub type Foo = List<String>;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn foo(l: crate::alias::Foo) {
|
||||||
|
match l {
|
||||||
|
Cons(..) => {} //~ ERROR: cannot find tuple struct or tuple variant `Cons` in this scope
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {}
|
14
src/test/ui/resolve/issue-90113.stderr
Normal file
14
src/test/ui/resolve/issue-90113.stderr
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
error[E0531]: cannot find tuple struct or tuple variant `Cons` in this scope
|
||||||
|
--> $DIR/issue-90113.rs:17:9
|
||||||
|
|
|
||||||
|
LL | Cons(..) => {}
|
||||||
|
| ^^^^ not found in this scope
|
||||||
|
|
|
||||||
|
help: consider importing this tuple variant
|
||||||
|
|
|
||||||
|
LL | use list::List::Cons;
|
||||||
|
|
|
||||||
|
|
||||||
|
error: aborting due to previous error
|
||||||
|
|
||||||
|
For more information about this error, try `rustc --explain E0531`.
|
Loading…
Add table
Add a link
Reference in a new issue