Fix FutureDropPoll shim for by-move async closures - #158904
Conversation
This comment has been minimized.
This comment has been minimized.
|
Some changes occurred to MIR optimizations cc @rust-lang/wg-mir-opt |
|
Thanks for the pull request, and welcome! The Rust Project is excited to review your changes, and you should hear from @nnethercote (or someone else) some time within the next two weeks. Please see the contribution instructions for more information. Namely, in order to ensure the minimum review times lag, PR authors and assigned reviewers should ensure that the review label (
Why was this reviewer chosen?The reviewer was selected based on:
|
|
I don't know this code at all. Git blame suggests... r? @cjgillot |
| @@ -0,0 +1,19 @@ | |||
| // Regression test for #142559 | |||
| //@ run-pass | |||
| //@ compile-flags: -Clink-dead-code=true | |||
There was a problem hiding this comment.
We shouldn't use link-dead-code everywhere, it's rather buggy.
| //@ compile-flags: -Clink-dead-code=true | |
| //@ compile-flags: --crate-type=lib |
There was a problem hiding this comment.
This suggestion would break the test build.
error: 1 errors occurred comparing output.
status: exit status: 0
stdout: none
--- stderr -------------------------------
warning: function `main` is never used
--> ~/rust/tests/ui/async-await/async-drop/async-drop-future-drop-poll.rs:19:4
|
LL | fn main() {}
| ^^^^
|
= note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
warning: 1 warning emitted
------------------------------------------
---- [ui] tests/ui/async-await/async-drop/async-drop-future-drop-poll.rs stdout end ----
failures:
[ui] tests/ui/async-await/async-drop/async-drop-future-drop-poll.rs
There was a problem hiding this comment.
To pass the test,
- Remove main function
- Change
-Clink-dead-code=trueto--crate-type=lib - Change
@ run-passto@ build-pass
I’ll make another commit for the change
|
Reminder, once the PR becomes ready for a review, use |
|
|
@rustbot ready |
|
@bors squash msg="Fix FutureDropPoll shim for by-move async closures" |
This comment has been minimized.
This comment has been minimized.
|
🔨 2 commits were squashed into b9ad974. |
f304aae to
b9ad974
Compare
|
Thanks! @bors r+ rollup |
…-obk Fix FutureDropPoll shim for by-move async closures Related rust-lang#142559 When the coroutine is coroutine-closures, `build_adrop_for_coroutine_shim` used the the ref of the coroutine body. This PR uses `coroutine_by_move_body_def_id` to fetch the by-move body. (matching the existing `DropGlue` behavior in `shim.rs`)
…-obk Fix FutureDropPoll shim for by-move async closures Related rust-lang#142559 When the coroutine is coroutine-closures, `build_adrop_for_coroutine_shim` used the the ref of the coroutine body. This PR uses `coroutine_by_move_body_def_id` to fetch the by-move body. (matching the existing `DropGlue` behavior in `shim.rs`)
…-obk Fix FutureDropPoll shim for by-move async closures Related rust-lang#142559 When the coroutine is coroutine-closures, `build_adrop_for_coroutine_shim` used the the ref of the coroutine body. This PR uses `coroutine_by_move_body_def_id` to fetch the by-move body. (matching the existing `DropGlue` behavior in `shim.rs`)
…-obk Fix FutureDropPoll shim for by-move async closures Related rust-lang#142559 When the coroutine is coroutine-closures, `build_adrop_for_coroutine_shim` used the the ref of the coroutine body. This PR uses `coroutine_by_move_body_def_id` to fetch the by-move body. (matching the existing `DropGlue` behavior in `shim.rs`)
Rollup of 14 pull requests Successful merges: - #150885 (Revive L4Re target) - #159643 (Add support for splatted function pointers) - #160433 (delegation: add support for wrapping of the return value with `From::from`) - #160530 (refactor handling of target features in Session) - #160606 (bootstrap: Store and use an explicit CheckKind in `check::Rustc`) - #160628 (fix ICE in `suggest_add_reference_to_arg` for non-callable items) - #160634 (miri subtree update) - #158904 (Fix FutureDropPoll shim for by-move async closures) - #160335 (dlopen offload) - #160445 (codegen: classify localized MSVC linker progress as linker_info) - #160504 (cleanup borrowck, improve c-variadic handling) - #160587 (Add regression test for associated type outlives bound at call site) - #160625 (platform-support/netbsd.md: No longer mention 8.x, due to EoL.) - #160636 (derive(Diagnostic): link to proper docs)
…-obk Fix FutureDropPoll shim for by-move async closures Related rust-lang#142559 When the coroutine is coroutine-closures, `build_adrop_for_coroutine_shim` used the the ref of the coroutine body. This PR uses `coroutine_by_move_body_def_id` to fetch the by-move body. (matching the existing `DropGlue` behavior in `shim.rs`)
…uwer Rollup of 21 pull requests Successful merges: - #159784 (Hint that memchr returns an in-bounds index) - #150885 (Revive L4Re target) - #159643 (Add support for splatted function pointers) - #160433 (delegation: add support for wrapping of the return value with `From::from`) - #160530 (refactor handling of target features in Session) - #160606 (bootstrap: Store and use an explicit CheckKind in `check::Rustc`) - #160628 (fix ICE in `suggest_add_reference_to_arg` for non-callable items) - #160634 (miri subtree update) - #157641 (Do not promote extern statics) - #158904 (Fix FutureDropPoll shim for by-move async closures) - #160103 (Add regression test for GAT bound mismatched type error) - #160335 (dlopen offload) - #160445 (codegen: classify localized MSVC linker progress as linker_info) - #160499 (rustc_resolve: move diagnostic attribute linting to attr parsing) - #160504 (cleanup borrowck, improve c-variadic handling) - #160577 (expand: Feature gate AST-based attribute macros on expressions and statements) - #160587 (Add regression test for associated type outlives bound at call site) - #160625 (platform-support/netbsd.md: No longer mention 8.x, due to EoL.) - #160636 (derive(Diagnostic): link to proper docs) - #160644 (Clean up some manual debug impls) - #160649 (move naked function ui tests)
…-obk Fix FutureDropPoll shim for by-move async closures Related rust-lang#142559 When the coroutine is coroutine-closures, `build_adrop_for_coroutine_shim` used the the ref of the coroutine body. This PR uses `coroutine_by_move_body_def_id` to fetch the by-move body. (matching the existing `DropGlue` behavior in `shim.rs`)
…uwer Rollup of 20 pull requests Successful merges: - #159784 (Hint that memchr returns an in-bounds index) - #150885 (Revive L4Re target) - #159643 (Add support for splatted function pointers) - #160433 (delegation: add support for wrapping of the return value with `From::from`) - #160530 (refactor handling of target features in Session) - #160606 (bootstrap: Store and use an explicit CheckKind in `check::Rustc`) - #160628 (fix ICE in `suggest_add_reference_to_arg` for non-callable items) - #160634 (miri subtree update) - #157641 (Do not promote extern statics) - #158904 (Fix FutureDropPoll shim for by-move async closures) - #160103 (Add regression test for GAT bound mismatched type error) - #160335 (dlopen offload) - #160445 (codegen: classify localized MSVC linker progress as linker_info) - #160499 (rustc_resolve: move diagnostic attribute linting to attr parsing) - #160504 (cleanup borrowck, improve c-variadic handling) - #160577 (expand: Feature gate AST-based attribute macros on expressions and statements) - #160587 (Add regression test for associated type outlives bound at call site) - #160625 (platform-support/netbsd.md: No longer mention 8.x, due to EoL.) - #160636 (derive(Diagnostic): link to proper docs) - #160644 (Clean up some manual debug impls)
…-obk Fix FutureDropPoll shim for by-move async closures Related rust-lang#142559 When the coroutine is coroutine-closures, `build_adrop_for_coroutine_shim` used the the ref of the coroutine body. This PR uses `coroutine_by_move_body_def_id` to fetch the by-move body. (matching the existing `DropGlue` behavior in `shim.rs`)
…uwer Rollup of 28 pull requests Successful merges: - #159784 (Hint that memchr returns an in-bounds index) - #160673 (Improve `canonical_param_env_cache`) - #150885 (Revive L4Re target) - #159643 (Add support for splatted function pointers) - #160433 (delegation: add support for wrapping of the return value with `From::from`) - #160530 (refactor handling of target features in Session) - #160606 (bootstrap: Store and use an explicit CheckKind in `check::Rustc`) - #160628 (fix ICE in `suggest_add_reference_to_arg` for non-callable items) - #160683 (Add regression test for unknown feaeture name reported with other errors) - #157641 (Do not promote extern statics) - #158904 (Fix FutureDropPoll shim for by-move async closures) - #159816 (added note/help about iterator invalidation when mutating a collection inside a for loop) - #160103 (Add regression test for GAT bound mismatched type error) - #160335 (dlopen offload) - #160445 (codegen: classify localized MSVC linker progress as linker_info) - #160499 (rustc_resolve: move diagnostic attribute linting to attr parsing) - #160504 (cleanup borrowck, improve c-variadic handling) - #160577 (expand: Feature gate AST-based attribute macros on expressions and statements) - #160587 (Add regression test for associated type outlives bound at call site) - #160625 (platform-support/netbsd.md: No longer mention 8.x, due to EoL.) - #160633 (delegation: fix determining wrong `FnKind` when delegation is inside const arg) - #160636 (derive(Diagnostic): link to proper docs) - #160644 (Clean up some manual debug impls) - #160649 (move naked function ui tests) - #160672 (Improve `MaybeLiveLocals`) - #160693 (Add branch config for perf. unrolling in bors) - #160696 (rustc_codegen_llvm: handle sm_101* features being an alias) - #160706 (renovate: clarify that vulnerability PRs are opened automatically)
Rollup merge of #158904 - KR-bluejay:issue-142559-fix, r=oli-obk Fix FutureDropPoll shim for by-move async closures Related #142559 When the coroutine is coroutine-closures, `build_adrop_for_coroutine_shim` used the the ref of the coroutine body. This PR uses `coroutine_by_move_body_def_id` to fetch the by-move body. (matching the existing `DropGlue` behavior in `shim.rs`)
…uwer Rollup of 28 pull requests Successful merges: - rust-lang/rust#159784 (Hint that memchr returns an in-bounds index) - rust-lang/rust#160673 (Improve `canonical_param_env_cache`) - rust-lang/rust#150885 (Revive L4Re target) - rust-lang/rust#159643 (Add support for splatted function pointers) - rust-lang/rust#160433 (delegation: add support for wrapping of the return value with `From::from`) - rust-lang/rust#160530 (refactor handling of target features in Session) - rust-lang/rust#160606 (bootstrap: Store and use an explicit CheckKind in `check::Rustc`) - rust-lang/rust#160628 (fix ICE in `suggest_add_reference_to_arg` for non-callable items) - rust-lang/rust#160683 (Add regression test for unknown feaeture name reported with other errors) - rust-lang/rust#157641 (Do not promote extern statics) - rust-lang/rust#158904 (Fix FutureDropPoll shim for by-move async closures) - rust-lang/rust#159816 (added note/help about iterator invalidation when mutating a collection inside a for loop) - rust-lang/rust#160103 (Add regression test for GAT bound mismatched type error) - rust-lang/rust#160335 (dlopen offload) - rust-lang/rust#160445 (codegen: classify localized MSVC linker progress as linker_info) - rust-lang/rust#160499 (rustc_resolve: move diagnostic attribute linting to attr parsing) - rust-lang/rust#160504 (cleanup borrowck, improve c-variadic handling) - rust-lang/rust#160577 (expand: Feature gate AST-based attribute macros on expressions and statements) - rust-lang/rust#160587 (Add regression test for associated type outlives bound at call site) - rust-lang/rust#160625 (platform-support/netbsd.md: No longer mention 8.x, due to EoL.) - rust-lang/rust#160633 (delegation: fix determining wrong `FnKind` when delegation is inside const arg) - rust-lang/rust#160636 (derive(Diagnostic): link to proper docs) - rust-lang/rust#160644 (Clean up some manual debug impls) - rust-lang/rust#160649 (move naked function ui tests) - rust-lang/rust#160672 (Improve `MaybeLiveLocals`) - rust-lang/rust#160693 (Add branch config for perf. unrolling in bors) - rust-lang/rust#160696 (rustc_codegen_llvm: handle sm_101* features being an alias) - rust-lang/rust#160706 (renovate: clarify that vulnerability PRs are opened automatically)
Related #142559
When the coroutine is coroutine-closures,
build_adrop_for_coroutine_shimused the the ref of the coroutine body.This PR uses
coroutine_by_move_body_def_idto fetch the by-move body.(matching the existing
DropGluebehavior inshim.rs)