Skip to content

Commit 936d105

Browse files
review: add 'visited' set to collectExportedImports
1 parent d15e424 commit 936d105

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

lib/AST/Module.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1437,6 +1437,8 @@ static void
14371437
collectExportedImports(const ModuleDecl *topLevelModule,
14381438
ModuleDecl::ImportCollector &importCollector) {
14391439
SmallVector<const ModuleDecl *> stack;
1440+
SmallPtrSet<const ModuleDecl *, 4> visited;
1441+
visited.insert(topLevelModule);
14401442
stack.push_back(topLevelModule);
14411443
while (!stack.empty()) {
14421444
const ModuleDecl *module = stack.pop_back_val();
@@ -1468,7 +1470,10 @@ collectExportedImports(const ModuleDecl *topLevelModule,
14681470
if (module->isClangOverlayOf(im.importedModule))
14691471
continue;
14701472
importCollector.collect(im);
1471-
stack.push_back(im.importedModule);
1473+
if (!visited.contains(im.importedModule)) {
1474+
visited.insert(im.importedModule);
1475+
stack.push_back(im.importedModule);
1476+
}
14721477
}
14731478
}
14741479
}

0 commit comments

Comments
 (0)