From cc1b96d91d8875bf727079d58fbf78af1135f505 Mon Sep 17 00:00:00 2001 From: Yong He Date: Mon, 30 Dec 2024 23:39:07 -0800 Subject: Check mismatching method parameter direction against interface declaration. (#5964) --- .../interfaces/argument-direction-mismatch.slang | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 tests/language-feature/interfaces/argument-direction-mismatch.slang (limited to 'tests/language-feature/interfaces') diff --git a/tests/language-feature/interfaces/argument-direction-mismatch.slang b/tests/language-feature/interfaces/argument-direction-mismatch.slang new file mode 100644 index 000000000..cf9d99fdd --- /dev/null +++ b/tests/language-feature/interfaces/argument-direction-mismatch.slang @@ -0,0 +1,37 @@ +//TEST:SIMPLE(filecheck=CHECK): -target spirv + +public interface ITest { + public void testIn(int a); + public void testOut(out int b); +}; + +public struct TestImpl : ITest { + // CHECK: ([[# @LINE + 1]]): error 38105 + public void testIn(out int a) { + a = 5; + } + // CHECK: ([[# @LINE + 1]]): error 38105 + public void testOut(int b) { + b = 6; + } +} + +RWStructuredBuffer output; + +void doSomething(T data) where T : ITest { + int a = 516; + data.testIn(a); + int b = 687; + data.testOut(b); + + output[0] = a; + output[1] = b; +} + +[shader("compute")] +[numthreads(1,1,1)] +void computeMain() +{ + TestImpl data; + doSomething(data); +} \ No newline at end of file -- cgit v1.2.3