diff options
Diffstat (limited to 'tests/language-feature')
| -rw-r--r-- | tests/language-feature/extensions/extension-method-simple.slang | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/language-feature/extensions/extension-method-simple.slang b/tests/language-feature/extensions/extension-method-simple.slang new file mode 100644 index 000000000..d3162c053 --- /dev/null +++ b/tests/language-feature/extensions/extension-method-simple.slang @@ -0,0 +1,30 @@ +// interface-extension.slang + +// Test that an `extension` applied to an interface type works as users expect + +//TEST(compute):COMPARE_COMPUTE(filecheck-buffer=CHECK): -shaderobj + +struct MyType +{ + int v; +} + +extension MyType +{ + int foo() + { + return v; + } +} + +//TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer +RWStructuredBuffer<int> outputBuffer; + +[numthreads(4, 1, 1)] +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) +{ + MyType t; + t.v = 1; + // CHECK: 1 + outputBuffer[dispatchThreadID.x] = t.foo(); +} |
