On Fri, Mar 16, 2012 at 08:53:06PM -0700, H. S. Teoh wrote:
[...]
> More to the point, how should AA's with immutable static array keys be
> implemented? The current implementation doesn't work at all because the
> input static array can't be assigned to the Slot (the static array field
> in Slot is completely immutable, even from the Slot ctor???).

P.S. The error message is:

        newAA.d(58): Error: slice this.key[] is not mutable

which is odd, because the code reads:

    struct Slot
    {
        Slot   *next;
        hash_t  hash;
        Key     key;
        Value   value;

        this(K)(hash_t h, K k, Value v, Slot *_next=null) if (keyCompat!K)
        {
                static if (is(K : Key))
                        key = k;        // line 58
                else ...
        }
        ...
    }

(This is being instantiated with Key == immutable char[4]).

Why is the assignment being translated into a slice for the assignment?


T

-- 
Nobody is perfect.  I am Nobody. -- pepoluan, GKC forum

Reply via email to