On 04/28/2014 12:12 AM, David Held wrote:

>  Here is a compilable example which fails:
>
> void main()
> {
>      double[int][string] nestedAA;
>      nestedAA["test"] = null;

I think I see what's going on. The line above has almost no effect. For example, it does not populate "test" with an empty double[int] AA. I think there is conceptually an entry but that entry will be created lazily when an element is added to it.

>      auto innerAA = nestedAA["test"];

That line is not a reference to "test" but another null:

    assert(innerAA is null);

>      innerAA[42] = 3.14;

That entry populates the local AA. The "test" entry is still null.

>      assert(42 in nestedAA["test"]);

And that line fails.

Ali

Reply via email to