digitalmars.D.bugs - [Issue 14632] New: Diagnostic improvement for invalid cast with
- via Digitalmars-d-bugs (54/55) May 30 2015 https://issues.dlang.org/show_bug.cgi?id=14632
https://issues.dlang.org/show_bug.cgi?id=14632 Issue ID: 14632 Summary: Diagnostic improvement for invalid cast with alias this Product: D Version: D2 Hardware: All OS: All Status: NEW Keywords: diagnostic Severity: minor Priority: P1 Component: DMD Assignee: nobody puremagic.com Reporter: k.hara.pg gmail.com Spin-off from issue 14093.From dmd test suite test/fail_compilation/fail_casting.d:/* TEST_OUTPUT: --- fail_compilation/fail_casting.d(179): Error: cannot cast expression __tup$n$.__expand_field_0 of type int to object.Object fail_compilation/fail_casting.d(179): Error: cannot cast expression __tup$n$.__expand_field_1 of type int to object.Object --- */ alias TypeTuple14093(T...) = T; struct Tuple14093(T...) { static if (T.length == 4) { alias Types = TypeTuple14093!(T[0], T[2]); Types expand; property ref inout(Tuple14093!Types) _Tuple_super() inout trusted { return *cast(typeof(return)*) &(expand[0]); } alias _Tuple_super this; } else { alias Types = T; Types expand; alias expand this; } } void test14093() { Tuple14093!(int, "x", int, "y") point; auto newPoint = cast(Object)(point); // line 179 } The message can be better as follows: Error: cannot cast expression point of type Tuple14093!(int, "x", int, "y") to object.Object --
May 30 2015