Untyped string variable fails silently. No compiler warning given.
Gary Willoughby
dev at nomad.so
Thu Mar 13 07:21:48 PDT 2014
On Thursday, 13 March 2014 at 14:07:22 UTC, Adam D. Ruppe wrote:
> On Thursday, 13 March 2014 at 13:57:49 UTC, Gary Willoughby
> wrote:
>> text = Random(unpredictableSeed).front.to!(string);
>
> This is actually calling the function std.conv.text.... this
> line is rewritten to:
>
> std.conv.text(Random(unpredictableSeed).front.to!(string));
>
> The text function converts all is arguments to string and
> returns them all concated together.
>
> It thinks you are trying to use a property setter.
>
>> // text is null here.
>> return hexDigest!(CRC32)(text).array.to!(string);
>
> And here, it is calling the text function with no arguments and
> no parens (similarly to a property getter). With no arguments,
> it just returns null.
>
>
>
>
> So this isn't actually a bug, D is working as designed, but it
> is a better example than the common "writeln = 1;" thing given
> in most property setter arguments...
Ah yes of course!
More information about the Digitalmars-d
mailing list