On Monday, 3 July 2023 at 09:50:20 UTC, Arafel wrote:
Is this a conscious design decision (if so, why?), or just a
leak of some implementation detail, but that could eventually
be made to work?
Besides the pointer adjustment problem mentioned by
FeepingCreature, it's an unsound conversion even with just class
inheritance. Consider:
```
class A {}
class B : A {}
class C : A {}
void main()
{
auto bArr = [new B()];
A[] aArr = bArr; // If this was allowed..
aArr[0] = new C(); // This would be a problem, because bArray
would now contain a C.
}
```