From 9d515dd257498cba9144dd31f2f3219e997e03d0 Mon Sep 17 00:00:00 2001 From: Yong He Date: Fri, 19 Jan 2018 18:20:23 -0500 Subject: Allow arbitrary type string as type argument in spAddEntryPointEx. --- source/slang/slang.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'source/slang/slang.cpp') 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 CompileRequest::parseTypeString(TranslationUnitRequest * translationUnit, String typeStr, RefPtr scope) +{ + Slang::SourceFile srcFile; + srcFile.content = typeStr; + DiagnosticSink sink; + auto tokens = preprocessSource( + &srcFile, + &sink, + nullptr, + Dictionary(), + 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); -- cgit v1.2.3