From efdbb954c57b89362e390f955d45f90e59d66878 Mon Sep 17 00:00:00 2001 From: Yong He Date: Wed, 29 May 2024 18:01:11 -0700 Subject: Improve compile time performance. (#3857) * Handle type check cache update on extensions more gracefully. * Correctness fix. * Cache implcit cast overload resolution results. * Fix. * More optimizations. * Cache implicit default ctor resolution. * Disable redundancy removal. * Fix. * Fix test. * Fix. * Correctness fix. * Fix. * Fix, * Fix test. * Small tweak. --- .../extensions/extension-method-simple.slang | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 tests/language-feature/extensions/extension-method-simple.slang (limited to 'tests/language-feature/extensions') 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 outputBuffer; + +[numthreads(4, 1, 1)] +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) +{ + MyType t; + t.v = 1; + // CHECK: 1 + outputBuffer[dispatchThreadID.x] = t.foo(); +} -- cgit v1.2.3