Skip to content

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