yum-mirror/slang

Making it easier to work with shaders

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

aidanfnvSkip creating transitive witnesses for interface conformances that are inherited through structs (#7597)26b9a176e

master
856 B31 linesraw
1//TEST:SIMPLE(filecheck=CHECK): -target spirv -gnone -std 2026
2//TEST:SIMPLE(filecheck=CHECK): -target spirv -gminimal -std 2026
3//TEST:SIMPLE(filecheck=CHECK_LEGACY): -target spirv -gnone -std 2025
4//TEST:SIMPLE(filecheck=CHECK_LEGACY): -target spirv -gminimal -std 2025
5//TEST:SIMPLE(filecheck=CHECK_LEGACY): -target spirv -gnone -std legacy
6//TEST:SIMPLE(filecheck=CHECK_LEGACY): -target spirv -gminimal -std legacy
7
8// CHECK: error 30811
9// CHECK: struct Child : Parent {};
10// CHECK: error 38029
11// CHECK: getObject<Child>();
12
13// CHECK_LEGACY: warning 30816
14// CHECK_LEGACY: struct Child : Parent {};
15// CHECK_LEGACY: error 38029
16// CHECK_LEGACY: getObject<Child>();
17
18interface IFoo {};
19struct Parent : IFoo {};
20struct Child : Parent {};
21
22T getObject<T>() where T : IFoo
23{
24    return T();
25}
26
27[shader("compute")]
28void main()
29{
30    getObject<Child>();
31}