diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/diagnostics/enum-implicit-conversion.slang.expected | 4 | ||||
| -rw-r--r-- | tests/front-end/diamond.slang | 32 |
2 files changed, 34 insertions, 2 deletions
diff --git a/tests/diagnostics/enum-implicit-conversion.slang.expected b/tests/diagnostics/enum-implicit-conversion.slang.expected index 1fc0c3dc6..c102c6012 100644 --- a/tests/diagnostics/enum-implicit-conversion.slang.expected +++ b/tests/diagnostics/enum-implicit-conversion.slang.expected @@ -7,8 +7,8 @@ tests/diagnostics/enum-implicit-conversion.slang(34): note: explicit conversion tests/diagnostics/enum-implicit-conversion.slang(35): error 30019: expected an expression of type 'uint', got 'Color' tests/diagnostics/enum-implicit-conversion.slang(35): note: explicit conversion from 'Color' to 'uint' is possible tests/diagnostics/enum-implicit-conversion.slang(42): error 39999: ambiguous call to overloaded operation with arguments of type (Color) -tests/diagnostics/enum-implicit-conversion.slang(18): note 39999: candidate: foo(uint) -tests/diagnostics/enum-implicit-conversion.slang(17): note 39999: candidate: foo(int) +tests/diagnostics/enum-implicit-conversion.slang(18): note 39999: candidate: func foo(uint) -> int +tests/diagnostics/enum-implicit-conversion.slang(17): note 39999: candidate: func foo(int) -> int } standard output = { } diff --git a/tests/front-end/diamond.slang b/tests/front-end/diamond.slang new file mode 100644 index 000000000..bcb1bbd43 --- /dev/null +++ b/tests/front-end/diamond.slang @@ -0,0 +1,32 @@ +// diamond.slang + +//TEST:SIMPLE: + +// Test to confirm that Slang can handle a "diamond" +// multiple inheritance pattern between interfaces, +// without having lookup ambiguity issues at use +// sites. + +interface A { float getA(); } + +interface B : A {} + +interface C : A {} + +interface D : B, C {} + +float doIt<T : D>(T value) +{ + return value.getA(); +} + +struct Thing : D +{ + float getA() { return 0.0f; } +} + +float test() +{ + Thing thing; + return doIt(thing); +}
\ No newline at end of file |
