Skip to content

Commit ea92c68

Browse files
GuillaumeGomezMark-Simulacrum
authored andcommitted
Fix infinite loop in rustdoc get_all_import_attributes function
1 parent 792a9a2 commit ea92c68

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

src/librustdoc/clean/mod.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2111,10 +2111,12 @@ fn get_all_import_attributes<'hir>(
21112111
) {
21122112
let hir_map = tcx.hir();
21132113
let mut visitor = OneLevelVisitor::new(hir_map, target_hir_id);
2114+
let mut visited = FxHashSet::default();
21142115
// If the item is an import and has at least a path with two parts, we go into it.
21152116
while let hir::ItemKind::Use(path, _) = item.kind &&
21162117
path.segments.len() > 1 &&
2117-
let hir::def::Res::Def(_, def_id) = path.segments[path.segments.len() - 2].res
2118+
let hir::def::Res::Def(_, def_id) = path.segments[path.segments.len() - 2].res &&
2119+
visited.insert(def_id)
21182120
{
21192121
if let Some(hir::Node::Item(parent_item)) = hir_map.get_if_local(def_id) {
21202122
// We add the attributes from this import into the list.

0 commit comments

Comments
 (0)