diff --git a/compiler/rustc_metadata/src/rmeta/decoder/cstore_impl.rs b/compiler/rustc_metadata/src/rmeta/decoder/cstore_impl.rs index 6bf237b8ed5df..65cae29c58dcb 100644 --- a/compiler/rustc_metadata/src/rmeta/decoder/cstore_impl.rs +++ b/compiler/rustc_metadata/src/rmeta/decoder/cstore_impl.rs @@ -375,13 +375,9 @@ pub(in crate::rmeta) fn provide(providers: &mut Providers) { use std::collections::vec_deque::VecDeque; let mut visible_parent_map: DefIdMap<DefId> = Default::default(); - // This is a secondary visible_parent_map, storing the DefId of - // parents that re-export the child as `_` or module parents - // which are `#[doc(hidden)]`. Since we prefer paths that don't - // do this, merge this map at the end, only if we're missing - // keys from the former. - // This is a rudimentary check that does not catch all cases, - // just the easiest. + // This is a secondary visible_parent_map, storing the DefId of parents that re-export + // the child as `_`. Since we prefer parents that don't do this, merge this map at the + // end, only if we're missing any keys from the former. let mut fallback_map: DefIdMap<DefId> = Default::default(); // Issue 46112: We want the map to prefer the shortest @@ -416,11 +412,6 @@ pub(in crate::rmeta) fn provide(providers: &mut Providers) { return; } - if ty::util::is_doc_hidden(tcx, parent) { - fallback_map.insert(def_id, parent); - return; - } - match visible_parent_map.entry(def_id) { Entry::Occupied(mut entry) => { // If `child` is defined in crate `cnum`, ensure @@ -448,9 +439,8 @@ pub(in crate::rmeta) fn provide(providers: &mut Providers) { } } - // Fill in any missing entries with the less preferable path. - // If this path re-exports the child as `_`, we still use this - // path in a diagnostic that suggests importing `::*`. + // Fill in any missing entries with the (less preferable) path ending in `::_`. + // We still use this path in a diagnostic that suggests importing `::*`. for (child, parent) in fallback_map { visible_parent_map.entry(child).or_insert(parent); } diff --git a/src/test/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/auxiliary/hidden-child.rs b/src/test/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/auxiliary/hidden-child.rs deleted file mode 100644 index 15e0af1de6446..0000000000000 --- a/src/test/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/auxiliary/hidden-child.rs +++ /dev/null @@ -1,8 +0,0 @@ -#![crate_type = "lib"] - -extern crate core; - -pub mod __private { - #[doc(hidden)] - pub use core::option::Option::{self, None, Some}; -} diff --git a/src/test/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/auxiliary/hidden-parent.rs b/src/test/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/auxiliary/hidden-parent.rs deleted file mode 100644 index 5a5079d8204ac..0000000000000 --- a/src/test/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/auxiliary/hidden-parent.rs +++ /dev/null @@ -1,8 +0,0 @@ -#![crate_type = "lib"] - -extern crate core; - -#[doc(hidden)] -pub mod __private { - pub use core::option::Option::{self, None, Some}; -} diff --git a/src/test/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/hidden-child.rs b/src/test/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/hidden-child.rs deleted file mode 100644 index 38dabc9d71ff7..0000000000000 --- a/src/test/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/hidden-child.rs +++ /dev/null @@ -1,10 +0,0 @@ -// aux-build:hidden-child.rs - -// FIXME(compiler-errors): This currently suggests the wrong thing. -// UI test exists to track the problem. - -extern crate hidden_child; - -fn main() { - let x: Option<i32> = 1i32; //~ ERROR mismatched types -} diff --git a/src/test/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/hidden-child.stderr b/src/test/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/hidden-child.stderr deleted file mode 100644 index 67f4ac08de2c5..0000000000000 --- a/src/test/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/hidden-child.stderr +++ /dev/null @@ -1,18 +0,0 @@ -error[E0308]: mismatched types - --> $DIR/hidden-child.rs:9:26 - | -LL | let x: Option<i32> = 1i32; - | ----------- ^^^^ expected enum `Option`, found `i32` - | | - | expected due to this - | - = note: expected enum `Option<i32>` - found type `i32` -help: try wrapping the expression in `hidden_child::__private::Some` - | -LL | let x: Option<i32> = hidden_child::__private::Some(1i32); - | ++++++++++++++++++++++++++++++ + - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0308`. diff --git a/src/test/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/hidden-parent.rs b/src/test/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/hidden-parent.rs deleted file mode 100644 index 4d96d6c16cba0..0000000000000 --- a/src/test/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/hidden-parent.rs +++ /dev/null @@ -1,7 +0,0 @@ -// aux-build:hidden-parent.rs - -extern crate hidden_parent; - -fn main() { - let x: Option<i32> = 1i32; //~ ERROR mismatched types -} diff --git a/src/test/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/hidden-parent.stderr b/src/test/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/hidden-parent.stderr deleted file mode 100644 index d92b812791014..0000000000000 --- a/src/test/ui/suggestions/dont-suggest-doc-hidden-variant-for-enum/hidden-parent.stderr +++ /dev/null @@ -1,18 +0,0 @@ -error[E0308]: mismatched types - --> $DIR/hidden-parent.rs:6:26 - | -LL | let x: Option<i32> = 1i32; - | ----------- ^^^^ expected enum `Option`, found `i32` - | | - | expected due to this - | - = note: expected enum `Option<i32>` - found type `i32` -help: try wrapping the expression in `Some` - | -LL | let x: Option<i32> = Some(1i32); - | +++++ + - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0308`.