summaryrefslogtreecommitdiffstats
path: root/tests/diagnostics/const-ref-differentiable-param.slang
diff options
context:
space:
mode:
Diffstat (limited to 'tests/diagnostics/const-ref-differentiable-param.slang')
-rw-r--r--tests/diagnostics/const-ref-differentiable-param.slang38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/diagnostics/const-ref-differentiable-param.slang b/tests/diagnostics/const-ref-differentiable-param.slang
new file mode 100644
index 000000000..c345826e7
--- /dev/null
+++ b/tests/diagnostics/const-ref-differentiable-param.slang
@@ -0,0 +1,38 @@
+//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK):
+
+
+[Differentiable]
+float f(__constref float3 val)
+{
+ return val.x;
+}
+
+struct MyType : IDifferentiable
+{
+ // Error: cannot use constref on a differentiable member method of a differentiable type.
+ [Differentiable]
+ [constref] float compute(float x) { return 0; }
+
+ // OK
+ [Differentiable]
+ float compute1(float x) { return 0; }
+
+ // OK
+ [constref] float compute2(float x) { return 0;}
+}
+
+struct MyType2
+{
+ // OK.
+ [Differentiable]
+ [constref] float compute(float x) { return 0; }
+
+ // OK
+ [constref]
+ float compute1(float x) { return 0; }
+}
+
+// CHECK-DAG: {{.*}}(5): error 38034: cannot use '__constref' on a differentiable parameter.
+// CHECK-NOT {{.*}}error
+// CHECK-DAG: {{.*}}(14): error 38034: cannot use '[constref]' on a differentiable member method of a differentiable type.
+// CHECK-NOT {{.*}}error