Merge remote-tracking branch 'origin/main' into rebranch

This commit is contained in:
swift-ci
2023-09-07 01:14:42 -07:00
25 changed files with 188 additions and 21 deletions

View File

@@ -826,6 +826,7 @@ LoadedFile *SerializedModuleLoaderBase::loadAST(
fileUnit = new (Ctx) SerializedASTFile(M, *loadedModuleFile);
M.setStaticLibrary(loadedModuleFile->isStaticLibrary());
M.setHasHermeticSealAtLink(loadedModuleFile->hasHermeticSealAtLink());
M.setIsEmbeddedSwiftModule(loadedModuleFile->isEmbeddedSwiftModule());
if (loadedModuleFile->isTestable())
M.setTestingEnabled();
if (loadedModuleFile->arePrivateImportsEnabled())
@@ -916,6 +917,18 @@ LoadedFile *SerializedModuleLoaderBase::loadAST(
diag::need_hermetic_seal_to_import_module, M.getName());
}
if (M.isEmbeddedSwiftModule() &&
!Ctx.LangOpts.hasFeature(Feature::Embedded)) {
Ctx.Diags.diagnose(diagLoc.value_or(SourceLoc()),
diag::cannot_import_embedded_module, M.getName());
}
if (!M.isEmbeddedSwiftModule() &&
Ctx.LangOpts.hasFeature(Feature::Embedded)) {
Ctx.Diags.diagnose(diagLoc.value_or(SourceLoc()),
diag::cannot_import_non_embedded_module, M.getName());
}
// Non-resilient modules built with C++ interoperability enabled
// are typically incompatible with clients that do not enable
// C++ interoperability.