On 3/23/12, H. S. Teoh <hst...@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!