On Thursday, 18 April 2013 at 21:45:56 UTC, bearophile wrote:
Yes, this is supposed to be allowed with the current design of
D. But with the latest dmd 2.063alpha that code doesn't work,
see below.
[snip]
Now that code gives a warning:
temp.d(11): Warning: explicit slice assignment this.hash2 =
(digest(str))[] is better than this.hash2 = digest(str)
(This is the result of a small battle I have started years ago
that is now half work, thanks to the work of Hara implementing
my enhancement request. I am glad to see our time was not
wasted.)
To remove that warning you have to write:
this.hash1 = md5.digest(str);
this.hash2 = digest!MD5(str)[];
Now it's visible that for hash2 you are slicing something
that's probably a fixed-sized array. This gives you a
significant help in understanding what's going on.
That's good to hear, Bearophile. Thanks Kenji.