From 652a8ee6883f08ce7cb55ef372277a535ce4d88f Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Tue, 15 Jul 2025 17:42:43 -0700 Subject: Add clear diagnostic for unsupported float types in generic value parameters (#7737) * Initial plan * Add validation and clear error message for float generic parameters Co-authored-by: csyonghe <2652293+csyonghe@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: csyonghe <2652293+csyonghe@users.noreply.github.com> --- .../generic-value-parameter-float-type.slang | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 tests/diagnostics/generic-value-parameter-float-type.slang (limited to 'tests/diagnostics') diff --git a/tests/diagnostics/generic-value-parameter-float-type.slang b/tests/diagnostics/generic-value-parameter-float-type.slang new file mode 100644 index 000000000..0f9cde255 --- /dev/null +++ b/tests/diagnostics/generic-value-parameter-float-type.slang @@ -0,0 +1,41 @@ +//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK): -target spirv + +// Test that generic value parameters with float types are properly rejected + +// CHECK: error 30624: generic value parameter type 'float' is not supported +struct ColorDefiner +{ + float4 color = {0.3, 0.7, 0.55, 1.0}; + + float4 get_color() { return color * TMult; } +} + +// CHECK: error 30624: generic value parameter type 'double' is not supported +struct DoubleDefiner +{ + float4 color = {0.3, 0.7, 0.55, 1.0}; + + float4 get_color() { return color * float(TMult); } +} + +// Integer types should work fine (no error expected) +struct IntDefiner +{ + float4 color = {0.3, 0.7, 0.55, 1.0}; + + float4 get_color() { return color * TMult; } +} + +// Enum types should work fine (no error expected) +enum Color { Red = 1, Green = 2, Blue = 3 } + +struct EnumDefiner +{ + float4 color = {0.3, 0.7, 0.55, 1.0}; + + float4 get_color() { return color * int(TMult); } +} + +void computeMain() +{ +} \ No newline at end of file -- cgit v1.2.3