[Issue 2647] New: typedef's and struct constructors

Denis Koroskin 2korden at gmail.com
Fri Feb 6 06:03:06 PST 2009


On Fri, 06 Feb 2009 11:25:37 +0300, <d-bugmail at puremagic.com> wrote:

> http://d.puremagic.com/issues/show_bug.cgi?id=2647
>
>            Summary: typedef's and struct constructors
>            Product: D
>            Version: 2.023
>           Platform: PC
>         OS/Version: All
>             Status: NEW
>           Keywords: spec
>           Severity: minor
>           Priority: P2
>          Component: DMD
>         AssignedTo: bugzilla at digitalmars.com
>         ReportedBy: s.d.hammett at googlemail.com
>
>
> when using typedefs of structs
> their constructors return the original type instead of the new type
>
> struct Ca {
>         this(int a) {
>                 _answer = a / 2;
>         }
>
>         int _answer;
> }
>
> void testClasses() {
>         typedef Ca Da;
>
>         Ca a = Ca(84);
>         Da c = Da(84);
>
> }
>
> tests0.d(38):
>
> Error: cannot implicitly convert expression (((Ca __ctmp276 = __ctmp276  
> = 0;
> ) , __ctmp276).this(84)) of type Ca to Da
>
> A cast is required for the code to work.
>
>

Ouch!




More information about the Digitalmars-d-bugs mailing list