summaryrefslogtreecommitdiffstats
path: root/tests/language-feature/capability/capability2.slang
diff options
context:
space:
mode:
Diffstat (limited to 'tests/language-feature/capability/capability2.slang')
-rw-r--r--tests/language-feature/capability/capability2.slang27
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();
}
}