diff --git a/std/algorithm.d b/std/algorithm.d index 0c162973e..d52dae1c1 100644 --- a/std/algorithm.d +++ b/std/algorithm.d @@ -4663,7 +4663,14 @@ private struct GroupByImpl(alias pred, IsEquivRelation isEquivRelation, Range) { r = _r; if (!empty) + { + // Check reflexivity if predicate is claimed to be an equivalence + // relation. + assert(!isEquivRelation || pred(r.front, r.front), + "predicate " ~ pred.stringof ~ " is claimed to be "~ + "equivalence relation yet isn't reflexive"); savePrev(); + } } @property bool empty() { return r.empty; }