@@ -310,6 +310,35 @@ static llvm::Error resolveExplicitModuleInputs(
310
310
if (auto ID = resolvingDepInfo.getClangIncludeTree ())
311
311
includeTrees.push_back (*ID);
312
312
313
+ auto addBridgingHeaderDeps =
314
+ [&](const ModuleDependencyInfo &depInfo) -> llvm::Error {
315
+ auto sourceDepDetails = depInfo.getAsSwiftSourceModule ();
316
+ if (!sourceDepDetails)
317
+ return llvm::Error::success ();
318
+
319
+ if (sourceDepDetails->textualModuleDetails
320
+ .CASBridgingHeaderIncludeTreeRootID .empty ()) {
321
+ if (!sourceDepDetails->textualModuleDetails .bridgingSourceFiles .empty ()) {
322
+ if (auto tracker =
323
+ cache.getScanService ().createSwiftDependencyTracker ()) {
324
+ tracker->startTracking ();
325
+ for (auto &file :
326
+ sourceDepDetails->textualModuleDetails .bridgingSourceFiles )
327
+ tracker->trackFile (file);
328
+ auto bridgeRoot = tracker->createTreeFromDependencies ();
329
+ if (!bridgeRoot)
330
+ return bridgeRoot.takeError ();
331
+ rootIDs.push_back (bridgeRoot->getID ().toString ());
332
+ }
333
+ }
334
+ } else
335
+ includeTrees.push_back (sourceDepDetails->textualModuleDetails
336
+ .CASBridgingHeaderIncludeTreeRootID );
337
+ return llvm::Error::success ();
338
+ };
339
+ if (auto E = addBridgingHeaderDeps (resolvingDepInfo))
340
+ return E;
341
+
313
342
std::vector<std::string> commandLine = resolvingDepInfo.getCommandline ();
314
343
for (const auto &depModuleID : dependencies) {
315
344
const auto optionalDepInfo =
@@ -386,27 +415,8 @@ static llvm::Error resolveExplicitModuleInputs(
386
415
includeTrees.push_back (*ID);
387
416
} break ;
388
417
case swift::ModuleDependencyKind::SwiftSource: {
389
- auto sourceDepDetails = depInfo->getAsSwiftSourceModule ();
390
- assert (sourceDepDetails && " Expected source dependency" );
391
- if (sourceDepDetails->textualModuleDetails
392
- .CASBridgingHeaderIncludeTreeRootID .empty ()) {
393
- if (!sourceDepDetails->textualModuleDetails .bridgingSourceFiles
394
- .empty ()) {
395
- if (auto tracker =
396
- cache.getScanService ().createSwiftDependencyTracker ()) {
397
- tracker->startTracking ();
398
- for (auto &file :
399
- sourceDepDetails->textualModuleDetails .bridgingSourceFiles )
400
- tracker->trackFile (file);
401
- auto bridgeRoot = tracker->createTreeFromDependencies ();
402
- if (!bridgeRoot)
403
- return bridgeRoot.takeError ();
404
- rootIDs.push_back (bridgeRoot->getID ().toString ());
405
- }
406
- }
407
- } else
408
- includeTrees.push_back (sourceDepDetails->textualModuleDetails
409
- .CASBridgingHeaderIncludeTreeRootID );
418
+ if (auto E = addBridgingHeaderDeps (*depInfo))
419
+ return E;
410
420
break ;
411
421
}
412
422
default :
0 commit comments