diff options
Diffstat (limited to 'tests/diagnostics')
| -rw-r--r-- | tests/diagnostics/extension-visibility-a.slang | 17 | ||||
| -rw-r--r-- | tests/diagnostics/extension-visibility-b.slang | 8 | ||||
| -rw-r--r-- | tests/diagnostics/extension-visibility-c.slang | 9 | ||||
| -rw-r--r-- | tests/diagnostics/extension-visibility.slang | 18 | ||||
| -rw-r--r-- | tests/diagnostics/extension-visibility.slang.expected | 7 |
5 files changed, 59 insertions, 0 deletions
diff --git a/tests/diagnostics/extension-visibility-a.slang b/tests/diagnostics/extension-visibility-a.slang new file mode 100644 index 000000000..97e4ef85c --- /dev/null +++ b/tests/diagnostics/extension-visibility-a.slang @@ -0,0 +1,17 @@ +// extension-visibility-a.slang + +interface IThing +{ + int getValue(); +} + +// Note: not implementing the interface here! +struct MyThing +{ + int value; +} + +int helper<T : IThing>(T thing) +{ + return thing.getValue(); +}
\ No newline at end of file diff --git a/tests/diagnostics/extension-visibility-b.slang b/tests/diagnostics/extension-visibility-b.slang new file mode 100644 index 000000000..7848f2a56 --- /dev/null +++ b/tests/diagnostics/extension-visibility-b.slang @@ -0,0 +1,8 @@ +// extension-visibility-b.slang + +import extension_visibility_a; + +extension MyThing : IThing +{ + int getValue() { return value; } +} diff --git a/tests/diagnostics/extension-visibility-c.slang b/tests/diagnostics/extension-visibility-c.slang new file mode 100644 index 000000000..2d7a5224d --- /dev/null +++ b/tests/diagnostics/extension-visibility-c.slang @@ -0,0 +1,9 @@ +// extension-visibility-c.slang + +import extension_visibility_a; +import extension_visibility_b; + +int works(MyThing thing) +{ + return helper(thing); +} diff --git a/tests/diagnostics/extension-visibility.slang b/tests/diagnostics/extension-visibility.slang new file mode 100644 index 000000000..029b16b86 --- /dev/null +++ b/tests/diagnostics/extension-visibility.slang @@ -0,0 +1,18 @@ +// extension-visibility.slang + +// Confirm that visibility of `extensions` is +// correctly scoped via `import`. + +//DIAGNOSTIC_TEST:SIMPLE: + +import extension_visibility_a; + +// Note: not importing b: +// import extension_visibility_b; + +import extension_visibility_c; + +int shouldntWork(MyThing thing) +{ + return helper(thing); +} diff --git a/tests/diagnostics/extension-visibility.slang.expected b/tests/diagnostics/extension-visibility.slang.expected new file mode 100644 index 000000000..217dfa188 --- /dev/null +++ b/tests/diagnostics/extension-visibility.slang.expected @@ -0,0 +1,7 @@ +result code = -1 +standard error = { +tests/diagnostics/extension-visibility.slang(17): error 39999: could not specialize generic for arguments of type (MyThing) +tests/diagnostics/extension-visibility-a.slang(14): note 39999: see declaration of func helper<T>(T) -> int +} +standard output = { +} |
