From 0d6312f3be66f4bff9eec9606228db3edc309e2c Mon Sep 17 00:00:00 2001 From: Yong He Date: Thu, 15 May 2025 12:51:29 -0700 Subject: Add checking for hlsl register semantic. (#7118) * Add checking for hlsl register semantic. * Fix. * Fix test. * Fix switch error. * Fix tests. --- source/slang/slang-check-type.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'source/slang/slang-check-type.cpp') diff --git a/source/slang/slang-check-type.cpp b/source/slang/slang-check-type.cpp index d32903175..b5f5240a5 100644 --- a/source/slang/slang-check-type.cpp +++ b/source/slang/slang-check-type.cpp @@ -331,17 +331,27 @@ bool SemanticsVisitor::CoerceToProperTypeImpl( if (outProperType) args.add(ExtractGenericArgVal(valParam->initExpr)); } - else if (auto constraintParam = as(member)) + } + + for (Decl* member : genericDeclRef.getDecl()->members) + { + if (auto constraintParam = as(member)) { auto genericParam = as(constraintParam->sub.type)->getDeclRef(); if (!genericParam) return false; auto genericTypeParamDecl = as(genericParam.getDecl()); if (!genericTypeParamDecl) + { + diagSink->diagnose(typeExp.exp, Diagnostics::genericTypeNeedsArgs, typeExp); return false; + } auto defaultType = CheckProperType(genericTypeParamDecl->initType); if (!defaultType) + { + diagSink->diagnose(typeExp.exp, Diagnostics::genericTypeNeedsArgs, typeExp); return false; + } auto witness = tryGetSubtypeWitness(defaultType, CheckProperType(constraintParam->sup)); if (!witness) -- cgit v1.2.3