https://issues.dlang.org/show_bug.cgi?id=15450
--- Comment #1 from Andrei Alexandrescu <and...@erdani.com> --- Shorter repro. It's the labeled continue that's the problem: struct BigO { struct Atom { int id; double exp; double logExp; } private Atom[][] terms; int opCmp(const BigO rhs) const { int result = 0; bigone: foreach (ref l; terms) { foreach (ref r; rhs.terms) { continue bigone; } } return result; } } static immutable linear = BigO([ [ BigO.Atom(0, 1, 0) ] ]); static assert(linear >= linear); --