Example case: interface I { } class C: I { this(int x) { this.x = x; } int x; override bool opEquals(Object o) { if(auto c = cast(C)o) { return c.x == x; } return false; } } void main() { I[] arr; I[] arr2; arr ~= new C(1); arr2 ~= new C(1); assert(arr == arr2); } Note, the opEquals isn't important, but I also want to ensure that after the segfault is removed the correct thing is done. Currently comparing two interfaces for equality does not work. I'm unsure whether this is a druntime or a dmd problem.
The code now successfully compiles and runs. closing as fixed.