yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

Yong HeEnsure generic constraints are checked before inner extension. (#7685)90c34e3db

master
551 B32 linesraw
1//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -shaderobj
2
3#pragma warning(disable:30856)
4interface IFoo<T>
5{
6    T getFirst();    
7}
8
9__generic<S, T : IArray<S>>
10extension T : IFoo<S>
11{ 
12    S getFirst()
13    {
14        return this[0];
15    }
16}
17
18T getFirstOuter<T>(IFoo<T> arr)
19{
20    return arr.getFirst();
21}
22
23//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer
24RWStructuredBuffer<int> outputBuffer;
25
26[numthreads(1,1,1)]
27void computeMain()
28{
29    int arr[] = {1,2,3};
30    // CHECK: 1
31    outputBuffer[0] = getFirstOuter(arr);
32}