diff options
Diffstat (limited to 'tests/language-feature')
| -rw-r--r-- | tests/language-feature/extensions/extension-override-3.slang | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/language-feature/extensions/extension-override-3.slang b/tests/language-feature/extensions/extension-override-3.slang new file mode 100644 index 000000000..2a023bca3 --- /dev/null +++ b/tests/language-feature/extensions/extension-override-3.slang @@ -0,0 +1,28 @@ +//TEST:SIMPLE(filecheck=CHECK):-target spirv + +// This test verifies that a generic method defined in an extension can be found. + +// CHECK: OpEntryPoint +struct Test { + void genericMethod<int u>(float2 x) {} + __subscript<T:__BuiltinIntegerType>(T idx1, T idx2) -> int + { + get { return 0; } + } +} + +extension Test { + void genericMethod<int u>() {} + __subscript<T:__BuiltinIntegerType>(T idx1) -> int + { + get { return 1; } + } +} + +[shader("compute")] +void main() +{ + Test t; + t.genericMethod<3>(); // Should work - calls extension method + int a = t[0]; // Should work - calls extension method +} |
