summaryrefslogtreecommitdiffstats
path: root/tests/language-feature/generics/generic-subscript.slang
blob: 87eec3045c59b2f88545a82e5a713686a333d0e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//TEST:COMPARE_COMPUTE(filecheck-buffer=CHECK): -output-using-type

//TEST_INPUT: set output = out ubuffer(data=[0 0 0 0], stride=4)
RWStructuredBuffer<float> output;

struct Tx
{
    float x;
    __subscript<I>(I index) -> float
        where I:IInteger
    {
        get { return x + index.toInt(); }
        set { x = newValue;}
    }
}

[numthreads(1,1,1)]
void computeMain()
{
    Tx obj;
    obj[0] = 3.0;
    // CHECK: 5.0
    output[0] = obj[2];
}