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`.