diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2021-10-23 05:28:26 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-23 05:28:26 +0200 |
| commit | 270c800d358ee47f3aee6fe1e2ec4dc92616d55f (patch) | |
| tree | 44be21de57be83c7ee4d198f16c9b940dc04c223 /src | |
| parent | c400feeb84f6164edd2d78607218ac8a58754cc3 (diff) | |
| parent | afcee19d88658e54f4a3c82892ba6d937e0f78d4 (diff) | |
| download | rust-270c800d358ee47f3aee6fe1e2ec4dc92616d55f.tar.gz rust-270c800d358ee47f3aee6fe1e2ec4dc92616d55f.zip | |
Rollup merge of #90117 - calebsander:fix/rsplit-clone, r=yaahc
Make RSplit<T, P>: Clone not require T: Clone This addresses a TODO comment. The behavior of `#[derive(Clone)]` *does* result in a `T: Clone` requirement. Playground example: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=a8b1a9581ff8893baf401d624a53d35b Add a manual `Clone` implementation, mirroring `Split` and `SplitInclusive`. `(R)?SplitN(Mut)?` don't have any `Clone` implementations, but I'll leave that for its own pull request.
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/ui/iterators/rsplit-clone.rs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/test/ui/iterators/rsplit-clone.rs b/src/test/ui/iterators/rsplit-clone.rs new file mode 100644 index 00000000000..911da742957 --- /dev/null +++ b/src/test/ui/iterators/rsplit-clone.rs @@ -0,0 +1,11 @@ +// check-pass + +// RSplit<T, P> previously required T: Clone in order to be Clone + +struct NotClone; + +fn main() { + let elements = [NotClone, NotClone, NotClone]; + let rsplit = elements.rsplit(|_| false); + rsplit.clone(); +} |
