https://issues.dlang.org/show_bug.cgi?id=24481
Dlang Bot <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |pull --- Comment #1 from Dlang Bot <[email protected]> --- @jmdavis created dlang/phobos pull request #8969 "Fix bugzilla issue 24481: retro stopped working" fixing this issue: - Fix bugzilla issue 24481: retro stopped working In an attempt make it so that non-copyable types worked with some of the functions in std/range/package.d, they were made to use moves instead of assignment, which broke the code for types which work with assignment but not moves (which affected the folks at Weka). The code checked for assignment but not whether move could be used, and that didn't change when the code was changed to use move, meaning that the checks didn't match what the code was actually doing. So, to support both the non-copyable types and the ones that can be assigned to but not moved to, this changes the code so that it uses a static if to check whether using move compiles, branching the code based on whether move works on not. If move works, it's used. If it doesn't, then assignment is used like used to be the case. So, in theory, the code that worked previously works again, and the newer functionality of being able to use non-copyable types with this code continues to work. Discussion here: https://github.com/dlang/phobos/pull/8721 https://github.com/dlang/phobos/pull/8969 --
