Skip to content

Commit b8c44fa

Browse files
Fix infinite loop in rustdoc get_all_import_attributes function
1 parent 18890f0 commit b8c44fa

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

src/librustdoc/clean/mod.rs

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

0 commit comments

Comments
 (0)