diff options
Diffstat (limited to 'tests/language-feature/capability/capability2.slang')
| -rw-r--r-- | tests/language-feature/capability/capability2.slang | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/tests/language-feature/capability/capability2.slang b/tests/language-feature/capability/capability2.slang index 6125c21d3..354b87dd5 100644 --- a/tests/language-feature/capability/capability2.slang +++ b/tests/language-feature/capability/capability2.slang @@ -12,6 +12,11 @@ interface IFoo void method2(); } +interface IFoo2 +{ + void method3(); +} + [require(spvGroupNonUniformArithmetic)] void useNonUniformArithmetic() {} @@ -39,20 +44,32 @@ struct Impl1 : IFoo } } -struct Impl2 : IFoo +struct Impl2 : IFoo, IFoo2 { - // CHECK: error 36104: {{.*}}spvGroupNonUniformArithmetic + // error here because explicit requirement is on `method1` + // CHECK: error 36104:{{.*}}spvGroupNonUniformArithmetic void method1() { - useRayQueryKHR(); // OK. - useNonUniformArithmetic(); // error. + useRayQueryKHR(); + useNonUniformArithmetic(); } + // error here because capabilities are explicitly tagged on + // the requirement parent `IFoo` // CHECK: error 36104: {{.*}}spvGroupNonUniformArithmetic void method2() { useAtomicFloat16(); - useNonUniformArithmetic(); // error. + useNonUniformArithmetic(); + } + + // do not error here because capabilities are not explicitly tagged + // on the requirement parent `IFoo2` or requirment method + // CHECK-NOT: error + void method3() + { + useAtomicFloat16(); + useNonUniformArithmetic(); } } |
