[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