Thread overview | ||||||
---|---|---|---|---|---|---|
|
January 05, 2013 is(...) with alias this | ||||
---|---|---|---|---|
| ||||
Hi! I just read the David's post http://forum.dlang.org/thread/kc9e74$bg7$1@digitalmars.com " This code worked with dmd 2.060: import std.stdio; import std.traits; struct OhWhy(S) { S[] arr; alias arr this; } void main() { static assert(isArray!(OhWhy!(float))); } But fails with dmd 2.061: ss.d(10): Error: static assert (isArray!(OhWhy!(float))) is false (same happens with alias this to static arrays and isArray/isStaticArray) Is this intended or a regression? If latter, I'll submit a bug-ticket. " When I read this I understood that I don't know what should return is(OhWhy!float unused == T[],T) Of course OhWhy!float implicit convertable into float[].But on the other hand is with == (not :) should check the type without conversions. What do you think? DMD 2.060 HEAD evaluate is(OhWhy!float unused == T[],T) -> true |
January 05, 2013 Re: is(...) with alias this | ||||
---|---|---|---|---|
| ||||
Posted in reply to Zhenya Attachments:
| I think the alias this transformation is done 'before' any usual conversion. I guess it's a real replacement inside the code (I'm not sure how to explain my feeling). But in any case, since OhWhy!(float) type is ... OhWhy!(float), I agree this should fail. |
January 05, 2013 Re: is(...) with alias this | ||||
---|---|---|---|---|
| ||||
Posted in reply to Philippe Sigaud | On Saturday, 5 January 2013 at 22:09:45 UTC, Philippe Sigaud wrote:
> I think the alias this transformation is done 'before' any usual
> conversion. I guess it's a real replacement inside the code (I'm not sure
> how to explain my feeling).
>
> But in any case, since OhWhy!(float) type is ... OhWhy!(float), I agree
> this should fail.
Agreed. This warrants a ticket in bugzilla.
|
January 06, 2013 Re: is(...) with alias this | ||||
---|---|---|---|---|
| ||||
Posted in reply to monarch_dodra | On Saturday, 5 January 2013 at 22:17:08 UTC, monarch_dodra wrote: > On Saturday, 5 January 2013 at 22:09:45 UTC, Philippe Sigaud wrote: >> I think the alias this transformation is done 'before' any usual >> conversion. I guess it's a real replacement inside the code (I'm not sure >> how to explain my feeling). >> >> But in any case, since OhWhy!(float) type is ... OhWhy!(float), I agree >> this should fail. > > Agreed. This warrants a ticket in bugzilla. http://d.puremagic.com/issues/show_bug.cgi?id=9274 |
Copyright © 1999-2021 by the D Language Foundation