yum-mirror/slang

Making it easier to work with shaders

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

Yong HeMake interface types non c-style in Slang2026. (#7260)812e47898

master
711 B35 linesraw
1//TEST:INTERPRET(filecheck=CHECK):
2
3Optional<Optional<int>> getNone() { return none; }
4
5void main()
6{
7    Optional<Optional<Optional<int>>> val = Optional<Optional<int>>(5);
8    Optional<Optional<Optional<int>>> defaultVal1 = none;
9    Optional<Optional<Optional<int>>> defaultVal2 = getNone();
10
11    // CHECK: 8
12    printf("%d\n", sizeof(val));
13
14    // CHECK: success
15    if (defaultVal1.hasValue == defaultVal2.hasValue)
16    {
17        printf("success\n");
18    }
19    else
20    {
21        printf("failure\n");
22    }
23
24    // CHECK: value: 5
25    if (let x = val)
26    {
27        if (let y = x)
28        {
29            if (let z = y)
30            {
31                printf("value: %d\n", z);
32            }
33        }
34    }
35}