Replace A+Send
trait subtyping with upcast coercion
#23423
Merged
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.
This upcast coercion currently never requires vtable changes. It should be generalized.
This is a [breaking-change] -- if you have an impl on an object type like
impl SomeTrait
, then this will no longer be applicable to object types likeSomeTrait+Send
. In the standard library, this primarily affectedAny
, and this PR adds impls forAny+Send
as to keep the API the same in practice. An alternate workaround is to use UFCS form or standalone fns. For more details, see #18737 (comment).r? @nrc