rust/library
bors 7174231ae6 Auto merge of #102737 - RalfJung:poll_fn_pin, r=Mark-Simulacrum
poll_fn and Unpin: fix pinning

See [IRLO](https://internals.rust-lang.org/t/surprising-soundness-trouble-around-pollfn/17484) for details: currently `poll_fn` is very subtle to use, since it does not pin the closure, so creating a `Pin::get_unchcked(&mut capture)` inside the closure is unsound. This leads to actual miscompilations with `futures::join!`.

IMO the proper fix is to pin the closure when the future is pinned, which is achieved by changing the `Unpin` implementation. This is a breaking change though. 1.64.0 was *just* released, so maybe this is still okay?

The alternative would be to add some strong comments to the docs saying that closure captures are *not pinned* and doing `Pin::get_unchecked` on them is unsound.
2022-10-28 23:27:33 +00:00
..
alloc ptr::eq: clarify that comparing dyn Trait is fragile 2022-10-26 11:15:14 +02:00
backtrace@07872f28cd
core Auto merge of #102737 - RalfJung:poll_fn_pin, r=Mark-Simulacrum 2022-10-28 23:27:33 +00:00
panic_abort
panic_unwind
portable-simd
proc_macro Stabilize proc_macro::Span::source_text 2022-10-18 17:13:41 +02:00
profiler_builtins
rtstartup
rustc-std-workspace-alloc
rustc-std-workspace-core
rustc-std-workspace-std
std Rollup merge of #103564 - RalfJung:miri-unused, r=thomcc 2022-10-27 09:25:10 +02:00
stdarch@790411f93c library: update stdarch submodule 2022-10-13 09:41:16 +08:00
test Print the precondition we violated, and visible through output capture 2022-10-26 22:09:17 -04:00
unwind