digitalmars.D.bugs - Multiple interface implementation doesn't seem to work quite right.
- Andy Friesen (32/32) May 30 2004 test.d:
test.d:
interface I1
{
void i1();
}
interface I2
{
void i2();
}
interface I3 : I1, I2
{
}
class C1 : I3
{
void i1() { printf("i1\n"); }
void i2() { printf("i2\n"); }
}
void f1(I1 i1, I2 i2)
{
i1.i1();
i2.i2();
}
int main()
{
I3 i3 = new C1();
f1(i3, i3);
return 0;
}
Yields the output:
i1
i1
-- andy
May 30 2004
Argh. This is a particularly nasty one. Anyhow, it's fixed now :-)
Jun 01 2004
I ran into more diamond-shaped interface problems last night, when combined
with the "multiple derivation" shown below. The vTable gets seriously borked
in such cases; it's exasperating :-(
"Andy Friesen" <andy ikagames.com> wrote in message
news:c9ctoa$10k$1 digitaldaemon.com...
test.d:
interface I1
{
void i1();
}
interface I2
{
void i2();
}
interface I3 : I1, I2
{
}
class C1 : I3
{
void i1() { printf("i1\n"); }
void i2() { printf("i2\n"); }
}
void f1(I1 i1, I2 i2)
{
i1.i1();
i2.i2();
}
int main()
{
I3 i3 = new C1();
f1(i3, i3);
return 0;
}
Yields the output:
i1
i1
-- andy
Jun 26 2004









"Walter" <newshound digitalmars.com> 