/* | |
TEST_OUTPUT: | |
--- | |
fail_compilation/fail100.d(24): Error: cannot implicitly convert expression `f` of type `Class[]` to `I[]` | |
--- | |
*/ | |
// Issue 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); | |
} |