Hi,
I am 80% sure, the failing assertion is correct but please have a 
look.
Second assertion fails.
Kind regards
André
class A{}
class B{}
class C : B
{
	A a;
	alias a this;
	
	this()
	{
		a = new A();
	}
}
void main()
{
	B b = new C();
	// OK
	assert(cast(C)b);
	
	// fails
	assert(cast(A)b);	
}