Performing a stable sort on a repeated pair of keys that are already in sorted order causes the following error message. core.exception.AssertError@std.algorithm(3736): Assertion failure However, doing so with repeated reverse-sorted keys works fine. In other words, a stable sort of the array [ "B", "A", "B", A" ] will succeed, but one of ["A", "B", "A", "B" ] will fail. Illustrative code: import std.algorithm; import std.stdio; void main() { auto ar1 = [ "B", "A", "B", "A" ]; sort!("a < b", SwapStrategy.stable)(ar1); // ok writeln(ar1); auto ar2 = [ "A", "B", "A", "B" ]; sort!("a < b", SwapStrategy.stable)(ar2); // fails writeln(ar2); }
Thanks for the report.
Fixed in version dmd 2.054.