From c0726e1d571f7f319a244ee6a6ba1ed2c361e079 Mon Sep 17 00:00:00 2001 From: Gangzheng Tong Date: Fri, 25 Jul 2025 10:56:50 -0700 Subject: Fix for Generic Function Redefinition Error (#7891) * emit literal values in getTypeNameHint for bool, str etc. * add test for specializing generics with bool literals * fix build error * add specializing with Enum type test --- source/slang/slang-ir-util.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'source') diff --git a/source/slang/slang-ir-util.cpp b/source/slang/slang-ir-util.cpp index a1d043dff..9b852b803 100644 --- a/source/slang/slang-ir-util.cpp +++ b/source/slang/slang-ir-util.cpp @@ -719,6 +719,30 @@ void getTypeNameHint(StringBuilder& sb, IRInst* type) case kIROp_IntLit: sb << as(type)->getValue(); break; + case kIROp_BoolLit: + sb << (as(type)->getValue() ? "true" : "false"); + break; + case kIROp_FloatLit: + sb << as(type)->getValue(); + break; + case kIROp_StringLit: + { + auto stringLit = as(type); + sb << "\""; + sb << stringLit->getStringSlice(); + sb << "\""; + } + break; + case kIROp_VoidLit: + sb << "void"; + break; + case kIROp_PtrLit: + { + auto ptrLit = as(type); + sb << "ptr_"; + sb << (UInt64)ptrLit->getValue(); + } + break; default: if (auto decor = type->findDecoration()) sb << decor->getName(); -- cgit v1.2.3