Distinct inline would not implement protocol if the inlined implemented it. This closes #1292

This commit is contained in:
Christoffer Lerno
2024-08-02 11:37:38 +02:00
parent 1aab8b87ec
commit a90e3c440b
3 changed files with 60 additions and 5 deletions

View File

@@ -0,0 +1,35 @@
interface Foo
{
fn int foo();
}
struct Abc (Foo)
{
int a;
}
struct Bcd
{
inline Abc a;
}
struct Def
{
Abc a;
}
fn int Abc.foo(&self) @dynamic => 1;
distinct Foob = inline Abc;
fn void test1()
{
Foob b;
Abc x;
Bcd y;
Def d;
Foo f = &x;
f = &b;
f = &y;
f = &d; // #error: assume the interface is implemented
}