From ccc75cdd9508a4e19efa22e7c911cc2013f514fa Mon Sep 17 00:00:00 2001 From: Yong He Date: Thu, 13 Feb 2025 03:29:36 -0800 Subject: Reflection Fixes. (#6346) * Fix 6317. * Fixes #6316. * Fix cmake preset. --------- Co-authored-by: Ellie Hermaszewska --- tools/slang-unit-test/unit-test-function-reflection.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'tools/slang-unit-test/unit-test-function-reflection.cpp') diff --git a/tools/slang-unit-test/unit-test-function-reflection.cpp b/tools/slang-unit-test/unit-test-function-reflection.cpp index 3ce6ab7a5..2f57d4151 100644 --- a/tools/slang-unit-test/unit-test-function-reflection.cpp +++ b/tools/slang-unit-test/unit-test-function-reflection.cpp @@ -42,6 +42,9 @@ SLANG_UNIT_TEST(functionReflection) int bar1(IFloat a, IFloat b) { return 0; } int bar2(T a, float3 b) { return 0; } int bar3(float3 b) { return 0; } + int bar4(T a){return 0;} + + struct Foo { __init() {} } )"; auto moduleName = "moduleG" + String(Process::getId()); @@ -205,4 +208,12 @@ SLANG_UNIT_TEST(functionReflection) resolvedFunctionReflection = bar3Reflection->specializeWithArgTypes(1, argTypes); SLANG_CHECK(resolvedFunctionReflection != nullptr); SLANG_CHECK(resolvedFunctionReflection == bar3Reflection); + + // GitHub issue #6317: bar2 is a function, not a type, so it should not be found. + SLANG_CHECK(module->getLayout()->findTypeByName("bar4") == nullptr); + + auto fooType = module->getLayout()->findTypeByName("Foo"); + SLANG_CHECK_ABORT(fooType != nullptr); + auto ctor = module->getLayout()->findFunctionByNameInType(fooType, "$init"); + SLANG_CHECK(ctor != nullptr); } -- cgit v1.2.3