dmd/compiler/test/fail_compilation/fail100.d
2022-07-09 18:53:07 +02:00

38 lines
646 B
D

/*
TEST_OUTPUT:
---
fail_compilation/fail100.d(24): Error: cannot implicitly convert expression `f` of type `Class[]` to `I[]`
---
*/
// https://issues.dlang.org/show_bug.cgi?id=85
// Array of classes doesn't function as array of interfaces
interface I
{
I[] foo();
uint x();
}
class Class : I
{
I[] foo()
{
// changing this to I[] f = new Class[1] fixes the bug
Class[] f = new Class[1];
//I[] f = new Class[1];
f[0] = new Class;
return f;
}
uint x()
{
return 0;
}
}
void main()
{
Class c = new Class();
assert(c.x == 0);
assert(c.foo[0].x == 0);
}