@@ -404,6 +404,20 @@ static void computeSwiftModuleTraceInfo(
404
404
});
405
405
}
406
406
407
+ static void extractImportsForTrace (ModuleDecl *module ,
408
+ SmallPtrSetImpl<ModuleDecl *> &imports) {
409
+ ModuleDecl::ImportFilter filter = ModuleDecl::ImportFilterKind::Public;
410
+ filter |= ModuleDecl::ImportFilterKind::Private;
411
+ filter |= ModuleDecl::ImportFilterKind::ImplementationOnly;
412
+ filter |= ModuleDecl::ImportFilterKind::SPIAccessControl;
413
+ filter |= ModuleDecl::ImportFilterKind::ShadowedBySeparateOverlay;
414
+ SmallVector<ModuleDecl::ImportedModule, 8 > importList;
415
+ module ->getImportedModules (importList, filter);
416
+
417
+ for (ModuleDecl::ImportedModule &import : importList)
418
+ imports.insert (import .importedModule );
419
+ }
420
+
407
421
static bool emitLoadedModuleTraceIfNeeded (ModuleDecl *mainModule,
408
422
DependencyTracker *depTracker,
409
423
StringRef prebuiltCachePath,
@@ -424,17 +438,8 @@ static bool emitLoadedModuleTraceIfNeeded(ModuleDecl *mainModule,
424
438
return true ;
425
439
}
426
440
427
- ModuleDecl::ImportFilter filter = ModuleDecl::ImportFilterKind::Public;
428
- filter |= ModuleDecl::ImportFilterKind::Private;
429
- filter |= ModuleDecl::ImportFilterKind::ImplementationOnly;
430
- filter |= ModuleDecl::ImportFilterKind::SPIAccessControl;
431
- filter |= ModuleDecl::ImportFilterKind::ShadowedBySeparateOverlay;
432
- SmallVector<ModuleDecl::ImportedModule, 8 > imports;
433
- mainModule->getImportedModules (imports, filter);
434
-
435
441
SmallPtrSet<ModuleDecl *, 8 > importedModules;
436
- for (ModuleDecl::ImportedModule &import : imports)
437
- importedModules.insert (import .importedModule );
442
+ extractImportsForTrace (mainModule, importedModules);
438
443
439
444
llvm::DenseMap<StringRef, ModuleDecl *> pathToModuleDecl;
440
445
for (const auto &module : ctxt.getLoadedModules ()) {
0 commit comments