Make PinCoerceUnsized require Deref#149218
Make PinCoerceUnsized require Deref#149218theemathas wants to merge 2 commits intorust-lang:mainfrom
Conversation
This comment has been minimized.
This comment has been minimized.
f921d32 to
f4fa919
Compare
|
@bors try |
Make PinCoerceUnsized require Deref
This comment has been minimized.
This comment has been minimized.
|
@craterbot check |
|
👌 Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
|
🚧 Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
|
I added these impls because otherwise the introduction of |
|
🎉 Experiment
Footnotes
|
|
👌 Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
…li-obk Make PinCoerceUnsized require Deref Also, delete impls on non-Deref types. Pin doesn't do anything useful for non-Deref types, so PinCoerceUnsized on such types makes no sense. This is a breaking change, since stable code can observe the deleted `PinCoerceUnsized` impls by uselessly coercing between such types inside a `Pin`. There is still some strange behavior, such as `Pin<&mut i32>` being able to coerce to `Pin<&dyn Send>`, but not being able to coerce to `Pin<&i32>`. However, I don't think it's possible to fix this. Fixes rust-lang#145081
…li-obk Make PinCoerceUnsized require Deref Also, delete impls on non-Deref types. Pin doesn't do anything useful for non-Deref types, so PinCoerceUnsized on such types makes no sense. This is a breaking change, since stable code can observe the deleted `PinCoerceUnsized` impls by uselessly coercing between such types inside a `Pin`. There is still some strange behavior, such as `Pin<&mut i32>` being able to coerce to `Pin<&dyn Send>`, but not being able to coerce to `Pin<&i32>`. However, I don't think it's possible to fix this. Fixes rust-lang#145081
…uwer Rollup of 7 pull requests Successful merges: - #149218 (Make PinCoerceUnsized require Deref) - #154094 (add neon load/store assembly test) - #154142 (Delegation: eliminate usage of AST from generics creation) - #154276 (allow `incomplete_features` in more tests) - #154284 (doc: linker-plugin-based LTO: update list of good combinations) - #154286 (Cherry-pick 1.94.1 release notes) - #154303 (Remove more `BuiltinLintDiag` variants - part 2)
|
⌛ Testing commit 969c3df with merge 31fcd54... Workflow: https://github.com/rust-lang/rust/actions/runs/23496789264 |
Make PinCoerceUnsized require Deref Also, delete impls on non-Deref types. Pin doesn't do anything useful for non-Deref types, so PinCoerceUnsized on such types makes no sense. This is a breaking change, since stable code can observe the deleted `PinCoerceUnsized` impls by uselessly coercing between such types inside a `Pin`. There is still some strange behavior, such as `Pin<&mut i32>` being able to coerce to `Pin<&dyn Send>`, but not being able to coerce to `Pin<&i32>`. However, I don't think it's possible to fix this. Fixes #145081
|
This pull request was unapproved. This PR was contained in a rollup (#154312), which was unapproved. Auto build was cancelled due to unapproval. Cancelled workflows: |
969c3df to
b8593ef
Compare
This comment has been minimized.
This comment has been minimized.
Also, delete impls on non-Deref types. Pin doesn't do anything useful for non-Deref types, so PinCoerceUnsized on such types makes no sense. This is a breaking change, since stable code can observe the deleted `PinCoerceUnsized` impls by uselessly coercing between such types inside a `Pin`. There is still some strange behavior, such as `Pin<&mut i32>` being able to coerce to `Pin<&dyn Send>`, but not being able to coerce to `Pin<&i32>`. However, I don't think it's possible to fix this. Fixes rust-lang#145081
b8593ef to
f55c8cc
Compare
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
|
The @rustbot ready |
|
@bors r+ |
View all comments
Also, delete impls on non-Deref types.
Pin doesn't do anything useful for non-Deref types, so PinCoerceUnsized on such types makes no sense.
This is a breaking change, since stable code can observe the deleted
PinCoerceUnsizedimpls by uselessly coercing between such types inside aPin.There is still some strange behavior, such as
Pin<&mut i32>being able to coerce toPin<&dyn Send>, but not being able to coerce toPin<&i32>. However, I don't think it's possible to fix this.Fixes #145081