From ea15647ba6bccb5ac48de5f4b80b8c2769d69b8f Mon Sep 17 00:00:00 2001 From: Yong He Date: Fri, 7 Apr 2023 10:12:00 -0700 Subject: Diagnose on attempt to specialize with interface type. (#2780) * Diagnose on attempt to specialize with interface type. Fixes ##1445. * Enable fixed test. * Fix test. * Fix. --------- Co-authored-by: Yong He --- tests/experiments/generic/type-to-value-4.slang | 13 ++++++------- .../experiments/generic/type-to-value-4.slang.expected.txt | 4 ++++ 2 files changed, 10 insertions(+), 7 deletions(-) create mode 100644 tests/experiments/generic/type-to-value-4.slang.expected.txt (limited to 'tests/experiments/generic') diff --git a/tests/experiments/generic/type-to-value-4.slang b/tests/experiments/generic/type-to-value-4.slang index 741b30791..8d768b54b 100644 --- a/tests/experiments/generic/type-to-value-4.slang +++ b/tests/experiments/generic/type-to-value-4.slang @@ -1,4 +1,4 @@ -//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj +//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj /* Test here is to try and associate a value with a type @@ -52,26 +52,25 @@ interface IGetE static Enum getE(); }; -public struct A : IGetE +struct A : IGetE { static Enum getE() { return Enum::A; } }; -public struct B : IGetE +struct B : IGetE { static Enum getE() { return Enum::B; } }; [numthreads(4, 1, 1)] void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) -{ - int index = dispatchThreadID.x; +{ // Err.. even though IGetE doesn't require an instanciation, not clear how to set it. So lets try with instanciation B b; IGetE g = b; let e = g.getE(); - + outputBuffer[dispatchThreadID.x] = int(e); -} \ No newline at end of file +} diff --git a/tests/experiments/generic/type-to-value-4.slang.expected.txt b/tests/experiments/generic/type-to-value-4.slang.expected.txt new file mode 100644 index 000000000..98fb6a686 --- /dev/null +++ b/tests/experiments/generic/type-to-value-4.slang.expected.txt @@ -0,0 +1,4 @@ +1 +1 +1 +1 -- cgit v1.2.3