diff options
Diffstat (limited to 'tests/language-feature')
| -rw-r--r-- | tests/language-feature/extensions/extension-override-2.slang | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/language-feature/extensions/extension-override-2.slang b/tests/language-feature/extensions/extension-override-2.slang new file mode 100644 index 000000000..bd40e8ba9 --- /dev/null +++ b/tests/language-feature/extensions/extension-override-2.slang @@ -0,0 +1,41 @@ +//TEST:INTERPRET(filecheck=CHECK): +interface IBar +{} + +interface IFoo : IBar +{ + void execute(); +} + +struct Impl : IFoo +{ + void execute() + { + printf("Impl::execute();\n"); + } +} + +extension<T:IBar> T : IFoo +{ + void execute() + { + printf("Extension::execute();\n"); + } +} + +struct Base : IBar{} + +void test<T:IFoo>(T t) +{ + t.execute(); +} + +void main() +{ + // CHECK: Impl::execute(); + Impl f; + test(f); + // CHECK: Extension::execute(); + Base b; + test(b); +}
\ No newline at end of file |
