You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
rustc 1.19.0-nightly (afa1240e5 2017-04-29)
error[E0277]: the trait bound `std::str::SplitWhitespace<'_>: std::clone::Clone` is not satisfied
--> <anon>:4:5
|
4 | takes_iter("foo bar".split_whitespace());
| ^^^^^^^^^^ the trait `std::clone::Clone` is not implemented for `std::str::SplitWhitespace<'_>`
|
= note: required by `takes_iter`
error: aborting due to previous error
Other workarounds ("foo bar".split(char::is_whitespace) and "foo bar".split(|c: char| c.is_whitespace()) also run into Clone issues.
The text was updated successfully, but these errors were encountered:
frewsxcv
added
the
T-libs-api
Relevant to the library API team, which will review and decide on the PR/issue.
label
Apr 30, 2017
Something like "foo bar".split(&[' ', '\n'][..]) or "foo bar".split(char::is_whitespace as fn(_) -> bool) should work too, since the pattern is clonable. Unless there's an issue with that function pointer, hope not..
impl Clone for .split_whitespace()
Use custom closure structs for the predicates so that the iterator's
clone can simply be derived. This should also reduce virtual call
overhead by not using function pointers.
Fixes#41655
It seems currently impossible to iterate over a
&str
split by whitespace multiple times, due toClone
not being available in any solution.Given the code
I get the following error
Other workarounds (
"foo bar".split(char::is_whitespace)
and"foo bar".split(|c: char| c.is_whitespace())
also run intoClone
issues.The text was updated successfully, but these errors were encountered: