-vgc Info ok?
ketmar via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon May 18 11:40:15 PDT 2015
On Mon, 18 May 2015 14:41:19 +0000, Chris wrote:
> On Monday, 18 May 2015 at 14:34:38 UTC, ketmar wrote:
>> On Mon, 18 May 2015 14:30:42 +0000, Chris wrote:
>>
>>> The following
>>>
>>> string[string] myarray = ["key":"value"];
>>> string entry;
>>> entry = myarray["key"]; // => vgc: indexing an associative array may
>>> cause GC allocation
>>>
>>> Why is _accessing_ an assoc treated as indexing it?
>>
>> it can throw "out of range" error, which is `new`ed.
>
> But shouldn't it read "accessing an associative array may cause GC
> allocation"?
not any access may cause allocation. `auto e = "key" in myarray;` will
not allocate, for example. yet it's still accessing the array. it's
*indexing* which may end in allocation.
> And maybe a hint to the exception that may be thrown.
i believe that such explanation is a work for lint-like tool. burden
compiler with special cases can lead too far. ;-)
> It's not the same as
>
> myarray["key1] = "some value";
> myarray["key2] = "some other value";
>
> A bit confusing.
yes, it requires some knowledge of language and libraries. "-vgc" is not
a linter, though, it was made with some assumptions about user's
knowledge.
yet you can open ER in bugzilla, maybe DMD developers will implement it.
i'm not a developer, and i can be wrong in reasons behind "-vgc".
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://lists.puremagic.com/pipermail/digitalmars-d-learn/attachments/20150518/c5cd38c2/attachment.sig>
More information about the Digitalmars-d-learn
mailing list