diff options
Diffstat (limited to 'source/slang/slang.cpp')
| -rw-r--r-- | source/slang/slang.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/source/slang/slang.cpp b/source/slang/slang.cpp index 2ebf024e3..d907e7614 100644 --- a/source/slang/slang.cpp +++ b/source/slang/slang.cpp @@ -125,6 +125,21 @@ CompileRequest::CompileRequest(Session* session) CompileRequest::~CompileRequest() {} + +RefPtr<Expr> CompileRequest::parseTypeString(TranslationUnitRequest * translationUnit, String typeStr, RefPtr<Scope> scope) +{ + Slang::SourceFile srcFile; + srcFile.content = typeStr; + DiagnosticSink sink; + auto tokens = preprocessSource( + &srcFile, + &sink, + nullptr, + Dictionary<String,String>(), + translationUnit); + return parseTypeFromSourceFile(translationUnit, tokens, &sink, scope); +} + void CompileRequest::parseTranslationUnit( TranslationUnitRequest* translationUnit) { @@ -429,7 +444,7 @@ int CompileRequest::addEntryPoint( entryPoint->profile = entryPointProfile; entryPoint->translationUnitIndex = translationUnitIndex; for (auto typeName : genericTypeNames) - entryPoint->genericParameterTypeNames.Add(getNamePool()->getName(typeName)); + entryPoint->genericParameterTypeNames.Add(typeName); auto translationUnit = translationUnits[translationUnitIndex].Ptr(); translationUnit->entryPoints.Add(entryPoint); |
