@@ -395,7 +395,8 @@ std::error_code SerializedModuleLoaderBase::openModuleFile(
395395SerializedModuleLoaderBase::BinaryModuleImports
396396SerializedModuleLoaderBase::getImportsOfModule (
397397    const  ModuleFileSharedCore &loadedModuleFile,
398-     ModuleLoadingBehavior transitiveBehavior, StringRef packageName) {
398+     ModuleLoadingBehavior transitiveBehavior, StringRef packageName,
399+     bool  isTestableImport) {
399400  llvm::StringSet<> importedModuleNames;
400401  std::string importedHeader = " " 
401402  for  (const  auto  &dependency : loadedModuleFile.getDependencies ()) {
@@ -410,8 +411,7 @@ SerializedModuleLoaderBase::getImportsOfModule(
410411        loadedModuleFile.getTransitiveLoadingBehavior (
411412            dependency,
412413            /* debuggerMode*/ false ,
413-             /* isPartialModule*/ false , packageName,
414-             loadedModuleFile.isTestable ());
414+             /* isPartialModule*/ false , packageName, isTestableImport);
415415    if  (dependencyTransitiveBehavior > transitiveBehavior)
416416      continue ;
417417
@@ -454,13 +454,6 @@ SerializedModuleLoaderBase::scanModuleFile(Twine modulePath, bool isFramework,
454454                           modulePath.str ());
455455      return  std::make_error_code (std::errc::no_such_file_or_directory);
456456    }
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-     }
464457  }
465458
466459  //  Some transitive dependencies of binary modules are not required to be
@@ -471,12 +464,12 @@ SerializedModuleLoaderBase::scanModuleFile(Twine modulePath, bool isFramework,
471464  //        optional.
472465  auto  binaryModuleImports =
473466      getImportsOfModule (*loadedModuleFile, ModuleLoadingBehavior::Required,
474-                          Ctx.LangOpts .PackageName );
467+                          Ctx.LangOpts .PackageName , isTestableImport );
475468
476469  //  Lookup optional imports of this module also
477470  auto  binaryModuleOptionalImports =
478471      getImportsOfModule (*loadedModuleFile, ModuleLoadingBehavior::Optional,
479-                          Ctx.LangOpts .PackageName );
472+                          Ctx.LangOpts .PackageName , isTestableImport );
480473
481474  auto  importedModuleSet = binaryModuleImports.moduleImports ;
482475  std::vector<std::string> importedModuleNames;
0 commit comments