@@ -395,7 +395,8 @@ std::error_code SerializedModuleLoaderBase::openModuleFile(
395
395
SerializedModuleLoaderBase::BinaryModuleImports
396
396
SerializedModuleLoaderBase::getImportsOfModule (
397
397
const ModuleFileSharedCore &loadedModuleFile,
398
- ModuleLoadingBehavior transitiveBehavior, StringRef packageName) {
398
+ ModuleLoadingBehavior transitiveBehavior, StringRef packageName,
399
+ bool isTestableImport) {
399
400
llvm::StringSet<> importedModuleNames;
400
401
std::string importedHeader = " " ;
401
402
for (const auto &dependency : loadedModuleFile.getDependencies ()) {
@@ -410,8 +411,7 @@ SerializedModuleLoaderBase::getImportsOfModule(
410
411
loadedModuleFile.getTransitiveLoadingBehavior (
411
412
dependency,
412
413
/* debuggerMode*/ false ,
413
- /* isPartialModule*/ false , packageName,
414
- loadedModuleFile.isTestable ());
414
+ /* isPartialModule*/ false , packageName, isTestableImport);
415
415
if (dependencyTransitiveBehavior > transitiveBehavior)
416
416
continue ;
417
417
@@ -454,13 +454,6 @@ SerializedModuleLoaderBase::scanModuleFile(Twine modulePath, bool isFramework,
454
454
modulePath.str ());
455
455
return std::make_error_code (std::errc::no_such_file_or_directory);
456
456
}
457
-
458
- if (loadedModuleFile->isTestable () && !isTestableImport) {
459
- if (Ctx.LangOpts .EnableModuleLoadingRemarks )
460
- Ctx.Diags .diagnose (SourceLoc (), diag::skip_module_testable,
461
- modulePath.str ());
462
- return std::make_error_code (std::errc::no_such_file_or_directory);
463
- }
464
457
}
465
458
466
459
// Some transitive dependencies of binary modules are not required to be
@@ -471,12 +464,12 @@ SerializedModuleLoaderBase::scanModuleFile(Twine modulePath, bool isFramework,
471
464
// optional.
472
465
auto binaryModuleImports =
473
466
getImportsOfModule (*loadedModuleFile, ModuleLoadingBehavior::Required,
474
- Ctx.LangOpts .PackageName );
467
+ Ctx.LangOpts .PackageName , isTestableImport );
475
468
476
469
// Lookup optional imports of this module also
477
470
auto binaryModuleOptionalImports =
478
471
getImportsOfModule (*loadedModuleFile, ModuleLoadingBehavior::Optional,
479
- Ctx.LangOpts .PackageName );
472
+ Ctx.LangOpts .PackageName , isTestableImport );
480
473
481
474
auto importedModuleSet = binaryModuleImports.moduleImports ;
482
475
std::vector<std::string> importedModuleNames;
0 commit comments