March 23, 2012 Re: Wrong lowering for a[b][c]++ | ||||
|---|---|---|---|---|
| ||||
On 3/23/12, H. S. Teoh <hsteoh@quickfur.ath.cx> wrote: > I'm guessing the compiler thinks the literal is an array literal, or maybe something went awry with the internal AA hacks that it currently has. struct Foo { string[int] aa; alias aa this; } void main() { Foo x = [1 : "4"]; } test.d(22): Error: cannot use array to initialize Foo Borken to the bone. I don't know whether there's a bug report open on this. Btw, want to see a magic trick? Put this into your hash: this(AA)(AA aa) if (std.traits.isAssociativeArray!AA && is(KeyType!AA == keytype) && is(ValueType!AA == valuetype)) { foreach (key, val; aa) this[key] = val; } And theeeen..... *drumroll*: AA!(string,int) bb = cast()["abc":123]; badoom-tshhh. LOL! | ||||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply