The fix for issue 16588 causes code like const(int)[] var = [0, 1, 1, 2]; assert(var.uniq.equal([0,1,2])); to result in errors like std\algorithm\iteration.d(4967): Error: cannot modify const expression this._back std\algorithm\iteration.d(4971): Error: cannot modify const expression last std\algorithm\iteration.d(4975): Error: cannot modify const expression this._back
Elements with a disabled default constructor fail similarly. struct NoDefault { int i; @disable this(); this(int x) { i = x; } } NoDefault[] var = [NoDefault(0), NoDefault(1), NoDefault(1), NoDefault(2)]; assert(var.uniq.equal([NoDefault(0), NoDefault(1), NoDefault(2)])); results in std\algorithm\iteration.d(4912): Error: field _back must be initialized in constructor
Introduced in https://github.com/dlang/phobos/pull/4961
Commit pushed to stable at https://github.com/dlang/phobos https://github.com/dlang/phobos/commit/113502af744fb82d68e8f51fd73831b628dcc1eb std.algorithm.iteration: Add test for issue 17264 Fixes Issue 17264 - [REG2.073] uniq fails with const elements
Commit pushed to master at https://github.com/dlang/phobos https://github.com/dlang/phobos/commit/113502af744fb82d68e8f51fd73831b628dcc1eb std.algorithm.iteration: Add test for issue 17264
https://github.com/dlang/phobos/pull/5384 was merged, closing.
Commit pushed to dmd-cxx at https://github.com/dlang/phobos https://github.com/dlang/phobos/commit/113502af744fb82d68e8f51fd73831b628dcc1eb std.algorithm.iteration: Add test for issue 17264