summaryrefslogtreecommitdiff
path: root/source/slang/slang.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang.cpp')
-rw-r--r--source/slang/slang.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/source/slang/slang.cpp b/source/slang/slang.cpp
index 2ddef9e3e..5d4e61cc0 100644
--- a/source/slang/slang.cpp
+++ b/source/slang/slang.cpp
@@ -960,7 +960,8 @@ SLANG_NO_THROW slang::IModule* SLANG_MCALL Linkage::loadModuleFromSource(
PathInfo::makeFromString(moduleName),
source,
SourceLoc(),
- &sink);
+ &sink,
+ nullptr);
sink.getBlobIfNeeded(outDiagnostics);
return asExternal(module);
@@ -2003,6 +2004,8 @@ RefPtr<ComponentType> createSpecializedGlobalAndEntryPointsComponentType(
void FrontEndCompileRequest::checkAllTranslationUnits()
{
LoadedModuleDictionary loadedModules;
+ if (additionalLoadedModules)
+ loadedModules = *additionalLoadedModules;
// Iterate over all translation units and
// apply the semantic checking logic.
@@ -2604,10 +2607,13 @@ RefPtr<Module> Linkage::loadModule(
const PathInfo& filePathInfo,
ISlangBlob* sourceBlob,
SourceLoc const& srcLoc,
- DiagnosticSink* sink)
+ DiagnosticSink* sink,
+ const LoadedModuleDictionary* additionalLoadedModules)
{
RefPtr<FrontEndCompileRequest> frontEndReq = new FrontEndCompileRequest(this, nullptr, sink);
+ frontEndReq->additionalLoadedModules = additionalLoadedModules;
+
RefPtr<TranslationUnitRequest> translationUnit = new TranslationUnitRequest(frontEndReq);
translationUnit->compileRequest = frontEndReq;
translationUnit->moduleName = name;
@@ -2767,7 +2773,8 @@ RefPtr<Module> Linkage::findOrImportModule(
filePathInfo,
fileContents,
loc,
- sink);
+ sink,
+ loadedModules);
}
//