https://issues.dlang.org/show_bug.cgi?id=10806

--- Comment #4 from FeepingCreature <default_357-l...@yahoo.de> ---
This problem still exists on master.

To demonstrate why it's a problem:

import std.stdio;

interface A1 { A1 foo(); }
interface A2 { A2 foo(); void bar(); }

class C1 : A1, A2 {
  override C1 foo() { return new C1; }
  override void bar() { writefln("bar"); }
}

void main() {
  A2 x = new C1;
  A2 y = x.foo();
  writefln("X: %s", x.classinfo);
  writefln("Y: %s", y.classinfo);
  y.bar();
}

Note that "A2 y" has an A1 vtable.

--

Reply via email to