/* TEST_OUTPUT: --- fail_compilation/fail11591b.d(16): Error: AA key type `S11591` does not have `bool opEquals(ref const S11591) const` --- */ struct S11591 { bool opEquals(int i) { return false; } Object o; // needed to suppress compiler generated opEquals } void test11591() { int[S11591] aa; } /* TEST_OUTPUT: --- fail_compilation/fail11591b.d(30): Error: AA key type `S12307a` does not have `bool opEquals(ref const S12307a) const` fail_compilation/fail11591b.d(31): Error: AA key type `S12307b` does not have `bool opEquals(ref const S12307b) const` --- */ struct S12307a { bool opEquals(T : typeof(this))(T) { return false; } } void test12307() { int[S12307a] aa1; // a int[S12307b] aa2; // b } struct S12307b { bool opEquals(T : typeof(this))(T) { return false; } }