Incoming breakage: Remove unnecessary ?Sized
bound
#1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hello there 👋, I'm a member of the Rust compiler team.
?Sized
bounds in associated type bounds don't have any effect. The boundDeref<Target: ?Sized>
can simply be replaced withDeref
without any change in semantics (Target
is already maybe-sized since it's defined liketype Target: ?Sized;
in the std library; writingDeref
doesn't implicitly add aSized
requirement, nor does writingDeref<Target:>
(sic!)).It's a bug in the current version of the Rust compiler that writing
TraitRef<AssocTy: ?Sized>
is allowed, it should've been forbidden all along. See also rust-lang/rust#135229. The compiler bug is about to be fixed (rust-lang/rust#135331) and these relaxed bounds will soon become a hard error in this position! I sincerely apologize for the inconvenience!This future breakage was found with the help of crater (see the build log).