Workaround:
import std.stdio;
class A {
int val;
alias val this;
}
class B : A { }
void main () {
A a = new B();
B* b = cast(B*) &a;
}
But i have no idea how this can work implicit as long as this bug
isn't fixed.
Maybe it can work with an opCast in B, which cast first to B* and
then to B.