Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feed HIR for by-move coroutine body def, since the inliner tries to read its attrs #139193

Merged
merged 1 commit into from
Apr 2, 2025

Conversation

compiler-errors
Copy link
Member

@compiler-errors compiler-errors commented Mar 31, 2025

See the comments in the test.

I'm surprised that nobody found this1 (edit: nvm haha), but you have to go out of your way to construct the by-move body and then inline it w/ a poll call, so I guess the inliner just never really gets into this situation before.

Fixes #134335

r? oli-obk

Footnotes

  1. Well, @eholk found this when working on the iter! {} macro, since it more dramatically affects those.

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Mar 31, 2025
@rustbot
Copy link
Collaborator

rustbot commented Mar 31, 2025

Some changes occurred to MIR optimizations

cc @rust-lang/wg-mir-opt

@@ -219,6 +219,8 @@ pub(crate) fn coroutine_by_move_body_def_id<'tcx>(
mir::MirSource::from_instance(InstanceKind::Item(body_def.def_id().to_def_id()));
dump_mir(tcx, false, "built", &"after", &by_move_body, |_, _| Ok(()));

// Feed HIR because we try to access this body's attrs in the inliner.
body_def.feed_hir();
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

feed_hir both feeds the local_def_id_to_hir_id query, and also the HIR attrs (as an empty list), which is fine here b/c you can't put attrs on the child coroutine anyways.

@rustbot
Copy link
Collaborator

rustbot commented Mar 31, 2025

This PR changes a file inside tests/crashes. If a crash was fixed, please move into the corresponding ui subdir and add 'Fixes #' to the PR description to autoclose the issue upon merge.

@compiler-errors
Copy link
Member Author

@bors r=eholk

@bors
Copy link
Collaborator

bors commented Mar 31, 2025

📌 Commit e2d5033 has been approved by eholk

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Mar 31, 2025
@compiler-errors
Copy link
Member Author

@bors rollup

@eholk eholk mentioned this pull request Mar 31, 2025
Zalathar added a commit to Zalathar/rust that referenced this pull request Apr 1, 2025
…r=eholk

Feed HIR for by-move coroutine body def, since the inliner tries to read its attrs

See the comments in the test.

I'm surprised that nobody found this[^1] (edit: nvm haha), but you have to go out of your way to construct the by-move body and then inline it w/ a poll call, so I guess the inliner just never really gets into this situation before.

Fixes rust-lang#134335

r? oli-obk

[^1]: Well, `@eholk` found this when working on the `iter! {}` macro, since it more dramatically affects those.
Zalathar added a commit to Zalathar/rust that referenced this pull request Apr 1, 2025
…r=eholk

Feed HIR for by-move coroutine body def, since the inliner tries to read its attrs

See the comments in the test.

I'm surprised that nobody found this[^1] (edit: nvm haha), but you have to go out of your way to construct the by-move body and then inline it w/ a poll call, so I guess the inliner just never really gets into this situation before.

Fixes rust-lang#134335

r? oli-obk

[^1]: Well, ``@eholk`` found this when working on the `iter! {}` macro, since it more dramatically affects those.
bors added a commit to rust-lang-ci/rust that referenced this pull request Apr 1, 2025
Rollup of 12 pull requests

Successful merges:

 - rust-lang#110406 (rustdoc-json: Add test for #[automatically_derived] attribute)
 - rust-lang#137738 (Make slice iterator constructors unstably const)
 - rust-lang#138492 (remove `feature(inline_const_pat)`)
 - rust-lang#138928 (Fix UWP reparse point check)
 - rust-lang#138950 (replace extra_filename with strict version hash in metrics file names)
 - rust-lang#139002 (Add release notes for 1.86.0)
 - rust-lang#139022 (increment depth of nested obligations)
 - rust-lang#139060 (replace commit placeholder in vendor status with actual commit)
 - rust-lang#139102 (coverage: Avoid splitting spans during span extraction/refinement)
 - rust-lang#139129 (Add tests for slice bounds check optimization)
 - rust-lang#139188 (PassWrapper: adapt for llvm/llvm-project@94122d58fc77079a291a3d008914…)
 - rust-lang#139193 (Feed HIR for by-move coroutine body def, since the inliner tries to read its attrs)

r? `@ghost`
`@rustbot` modify labels: rollup
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Apr 1, 2025
…r=eholk

Feed HIR for by-move coroutine body def, since the inliner tries to read its attrs

See the comments in the test.

I'm surprised that nobody found this[^1] (edit: nvm haha), but you have to go out of your way to construct the by-move body and then inline it w/ a poll call, so I guess the inliner just never really gets into this situation before.

Fixes rust-lang#134335

r? oli-obk

[^1]: Well, ```@eholk``` found this when working on the `iter! {}` macro, since it more dramatically affects those.
bors added a commit to rust-lang-ci/rust that referenced this pull request Apr 1, 2025
…iaskrgr

Rollup of 9 pull requests

Successful merges:

 - rust-lang#110406 (rustdoc-json: Add test for #[automatically_derived] attribute)
 - rust-lang#138790 (Note potential but private items in show_candidates)
 - rust-lang#138950 (replace extra_filename with strict version hash in metrics file names)
 - rust-lang#139002 (Add release notes for 1.86.0)
 - rust-lang#139022 (increment depth of nested obligations)
 - rust-lang#139129 (Add tests for slice bounds check optimization)
 - rust-lang#139188 (PassWrapper: adapt for llvm/llvm-project@94122d58fc77079a291a3d008914…)
 - rust-lang#139193 (Feed HIR for by-move coroutine body def, since the inliner tries to read its attrs)
 - rust-lang#139202 (Improve docs of ValTreeKind)

r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request Apr 1, 2025
…iaskrgr

Rollup of 8 pull requests

Successful merges:

 - rust-lang#110406 (rustdoc-json: Add test for #[automatically_derived] attribute)
 - rust-lang#138790 (Note potential but private items in show_candidates)
 - rust-lang#139002 (Add release notes for 1.86.0)
 - rust-lang#139022 (increment depth of nested obligations)
 - rust-lang#139129 (Add tests for slice bounds check optimization)
 - rust-lang#139188 (PassWrapper: adapt for llvm/llvm-project@94122d58fc77079a291a3d008914…)
 - rust-lang#139193 (Feed HIR for by-move coroutine body def, since the inliner tries to read its attrs)
 - rust-lang#139202 (Improve docs of ValTreeKind)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit aafb17d into rust-lang:master Apr 2, 2025
6 checks passed
@rustbot rustbot added this to the 1.88.0 milestone Apr 2, 2025
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Apr 2, 2025
Rollup merge of rust-lang#139193 - compiler-errors:inline-synthetic, r=eholk

Feed HIR for by-move coroutine body def, since the inliner tries to read its attrs

See the comments in the test.

I'm surprised that nobody found this[^1] (edit: nvm haha), but you have to go out of your way to construct the by-move body and then inline it w/ a poll call, so I guess the inliner just never really gets into this situation before.

Fixes rust-lang#134335

r? oli-obk

[^1]: Well, ````@eholk```` found this when working on the `iter! {}` macro, since it more dramatically affects those.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ICE: index out of bounds: the len is 12 but the index is 13
5 participants