view tests/mini/with3.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 0cc0c6b53372
children
line wrap: on
line source

enum fields 
{ 
    FIELD1, 
    FIELD2 
} 
 
fields find_field(fields f) { 
    with(fields) { 
        switch(f) { 
        case FIELD1:  
	  return FIELD1;
        default: 
	  return FIELD2;
        } 
    } 
} 
 
void main() { 
  assert(find_field(fields.FIELD1) == fields.FIELD1);
  assert(find_field(fields.FIELD2) == fields.FIELD2);
}