diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2023-03-20 07:10:30 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-20 07:10:30 +0100 |
| commit | c07679989a6bf83cd4fa7bdd0b8ea3bee754f3c0 (patch) | |
| tree | 791032c573674a4e9b378cc484eeb26bc7f518b5 /src | |
| parent | ede3c39fe606fd8c3b181858001d8cc62f723c11 (diff) | |
| parent | e9f29c40161ef06b014abd795b179861d5f55920 (diff) | |
| download | rust-c07679989a6bf83cd4fa7bdd0b8ea3bee754f3c0.tar.gz rust-c07679989a6bf83cd4fa7bdd0b8ea3bee754f3c0.zip | |
Rollup merge of #109259 - GuillaumeGomez:fix-missing-private-inlining, r=notriddle
rustdoc: Fix missing private inlining Fixes https://github.com/rust-lang/rust/issues/109258. If the item isn't inlined, it shouldn't have been added into `view_item_stack`. The problem here was that it was not removed, preventing sub items to be inlined if they have a re-export in "upper levels". cc `@epage` r? `@notriddle`
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustdoc/visit_ast.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/librustdoc/visit_ast.rs b/src/librustdoc/visit_ast.rs index e09a68069e8..060062db002 100644 --- a/src/librustdoc/visit_ast.rs +++ b/src/librustdoc/visit_ast.rs @@ -265,10 +265,6 @@ impl<'a, 'tcx> RustdocVisitor<'a, 'tcx> { return false; } - if !self.view_item_stack.insert(res_did) { - return false; - } - if !please_inline && let mut visitor = OneLevelVisitor::new(self.cx.tcx.hir(), res_did) && let Some(item) = visitor.find_target(self.cx.tcx, def_id.to_def_id(), path) && @@ -285,6 +281,10 @@ impl<'a, 'tcx> RustdocVisitor<'a, 'tcx> { return false; } + if !self.view_item_stack.insert(res_did) { + return false; + } + let ret = match tcx.hir().get_by_def_id(res_did) { Node::Item(&hir::Item { kind: hir::ItemKind::Mod(ref m), .. }) if glob => { let prev = mem::replace(&mut self.inlining, true); |
