4 ms·
I'm very probably missing something, but as a user I would definitely expect `Iterator::Item: Move`, but then also that `&{mut} T: Move where T: ?Move`. But ye
by simonask 2mo ago
I'm very probably missing something, but as a user I would definitely expect `Iterator::Item: Move`, but then also that `&{mut} T: Move where T: ?Move`.
But yeah I can see how these bounds are somewhat viral. Thanks!
- Dagonfly 2mo agoHere is an example of the problem: https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=c4e2a17964a92c19db33e1169e2806b8 https://play.rust-lang.org/?version=stable&mode=debug&editio... Imagine if MyTrait comes from core/std. Adding an opt-out bound like ?Sized (or ?Move) is a breaking change for any generic code that relies on Sized/Move. But you want some traits from std to be open for !Move types.