From 447b7e0e2be031409b1421b49c81f020353bf7c5 Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Tue, 21 Dec 2021 16:35:34 -0500 Subject: Language experiments (#2068) * #include an absolute path didn't work - because paths were taken to always be relative. * Moved to experiments. Added some more tests. * More tests around associated types. * Return interface tests. * More tests. --- tests/current-bugs/generic/fixed-array-2.slang | 69 -------------------------- 1 file changed, 69 deletions(-) delete mode 100644 tests/current-bugs/generic/fixed-array-2.slang (limited to 'tests/current-bugs/generic/fixed-array-2.slang') diff --git a/tests/current-bugs/generic/fixed-array-2.slang b/tests/current-bugs/generic/fixed-array-2.slang deleted file mode 100644 index 00024f80e..000000000 --- a/tests/current-bugs/generic/fixed-array-2.slang +++ /dev/null @@ -1,69 +0,0 @@ -//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -shaderobj - -/* A test around use of an array like container. - -Here we just fix the array size, so can test out other characteristics. - -indexOf can't compile because v == elements[i] cannot determine equality. - -It would seem like I should have an IEquality interface, that I could then make -a T require. - -Doesn't work because - -.slang(29): error 30019: expected an expression of type 'Type', got 'T' - if (T::isEqual(v, elements[i])) - - */ - -//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer -RWStructuredBuffer outputBuffer; - -interface IEquality -{ - associatedtype Type; - static bool isEqual(Type a, Type b); -}; - -extension int : IEquality -{ - typedef int Type; - static bool isEqual(Type a, Type b) - { - return a == b; - } -}; - - -struct FixedArray -{ - static const int SIZE = 4; - - [mutating] void setAt(int i, T value) { elements[i] = value; } - T getAt(int i) { return elements[i]; } - int indexOf(T v) - { - for (int i = 0; i < SIZE; ++i) - { - if (T::isEqual(v, elements[i])) - { - return i; - } - return -1; - } - } - T elements[SIZE]; -}; - -[numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) -{ - int index = dispatchThreadID.x; - - FixedArray arr; - arr.setAt(0, index); - - outputBuffer[index] = 1 + arr.getAt(0); -} - - -- cgit v1.2.3