summaryrefslogtreecommitdiff
path: root/source/slang/slang-linkable.h
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2025-08-09 09:43:25 -0700
committerGitHub <noreply@github.com>2025-08-09 16:43:25 +0000
commitdcdebc1a76a0a6ffbfd6a5805354f8f679c60202 (patch)
tree126d60d157e73e401aacf1e13b400b8533ec8828 /source/slang/slang-linkable.h
parentfc6aea37483446372425aca8471f0e8bf7c3a910 (diff)
Allow specializing entrypoints with generic value args or variadic types from API (#8119)
Closes #8110. Closes #8011.
Diffstat (limited to 'source/slang/slang-linkable.h')
-rw-r--r--source/slang/slang-linkable.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/source/slang/slang-linkable.h b/source/slang/slang-linkable.h
index 04a5c3c88..da97fbf9a 100644
--- a/source/slang/slang-linkable.h
+++ b/source/slang/slang-linkable.h
@@ -262,7 +262,7 @@ public:
/// it only really makes sense on `Module`.
///
Type* getTypeFromString(String const& typeStr, DiagnosticSink* sink);
-
+ Expr* parseExprFromString(String expr, DiagnosticSink* sink);
Expr* findDeclFromString(String const& name, DiagnosticSink* sink);
Expr* tryResolveOverloadedExpr(Expr* exprIn);
@@ -348,6 +348,7 @@ public:
virtual RefPtr<SpecializationInfo> _validateSpecializationArgsImpl(
SpecializationArg const* args,
Index argCount,
+ Index& outConsumedArgCount,
DiagnosticSink* sink) = 0;
/// Validate the given specialization `args` and compute any side-band specialization info.
@@ -363,11 +364,12 @@ public:
RefPtr<SpecializationInfo> _validateSpecializationArgs(
SpecializationArg const* args,
Index argCount,
+ Index& outConsumedArgCount,
DiagnosticSink* sink)
{
if (argCount == 0)
return nullptr;
- return _validateSpecializationArgsImpl(args, argCount, sink);
+ return _validateSpecializationArgsImpl(args, argCount, outConsumedArgCount, sink);
}
/// Specialize this component type given `specializationArgs`