https://issues.dlang.org/show_bug.cgi?id=14093
Igor Stepanov <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED CC| |[email protected] Resolution|FIXED |--- --- Comment #6 from Igor Stepanov <[email protected]> --- This issue is not fully solved. There is simpler example: ----------------------------------------- struct FooBar { int a; int b; } void test14093() { FooBar foo; auto obj = cast(Object)foo; //e2ir: cannot cast foo of type FooBar to type object.Object } ----------------------------------------- Moreover, I think, this issue is solved incorrectly: alias this mechanism should reject `cast(Object)(point._tupleAliasThis_)` variant and continue process the root casting "cast(Object)point" excluding alias this. And result error message should be "Error: cannot cast expression point of type Tuple!(int, "x", int, "y") to object.Object". We are interested in subtyping (alias this, or inheritance) only when it can done its work (casting, .member ...). --
