view tests/mini/arrayops1.d @ 1512:09734fb929c0

Make == for associative arrays test for equality, not identity. _aaEq was added to runtime/internal/aaA.d which forwards to TypeInfo_AssociativeArray.equals in genobj.d. On the codegen side, DtoAAEquals was added to gen/aa.cpp and is called from EqualExp::toElem in gen/toir.cpp. I assume that the frontend will produce an error if == is used on associative arrays of different type. This fixes DMD bug 1429.
author Christian Kamm <kamm incasoftware de>
date Sun, 21 Jun 2009 19:05:24 +0200
parents 06576ece1a1b
children
line wrap: on
line source

extern(C) int printf(char*, ...);

void main()
{
    int[3] a = [1, 2, 3];
    int[3] b = [4, 5, 6];
    int[3] c;

    c[] = a[] + b[];

    printf("c.ptr = %p\n", c.ptr);
    printf("c.length = %lu\n", c.length);

    assert(c[0] == 5);
    assert(c[1] == 7);
    assert(c[2] == 9);
}