V Thu, 11 Sep 2014 11:40:05 +0000
andre via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com>
napsáno:

> Hi,
> 
> I am 80% sure, the failing assertion is correct but please have a 
> look.

No it is not

assert(cast(A)cast(C)b); // this is OK

b is B so it does not know about having alias to A;

> 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);       
> }


Reply via email to