Skip to content

Emit fatal on invalid const args with nested defs#154595

Open
mu001999 wants to merge 4 commits intorust-lang:mainfrom
mu001999-contrib:fix/154539
Open

Emit fatal on invalid const args with nested defs#154595
mu001999 wants to merge 4 commits intorust-lang:mainfrom
mu001999-contrib:fix/154539

Conversation

@mu001999
Copy link
Copy Markdown
Member

@mu001999 mu001999 commented Mar 30, 2026

Fixed #123629
Fixes #154539

Invalid const args are rejected, so their surrounding HIR is not preserved. But nested defs inside them can still get created, leaving children lowered without a valid HIR parent and causing an ICE when later error handling walks HIR parents.

r? @BoxyUwU

@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 30, 2026
@rustbot
Copy link
Copy Markdown
Collaborator

rustbot commented Mar 30, 2026

BoxyUwU is currently at their maximum review capacity.
They may take a while to respond.

@rust-bors

This comment has been minimized.

@rustbot

This comment has been minimized.

@rust-bors

This comment has been minimized.

@rustbot
Copy link
Copy Markdown
Collaborator

rustbot commented Apr 14, 2026

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.

@rust-log-analyzer

This comment has been minimized.

@BoxyUwU
Copy link
Copy Markdown
Member

BoxyUwU commented Apr 15, 2026

Can you combine this PR with #154642 since they'll conflict with eachother. Can you also add FIXME(mgca) to both to revisit this and maybe make these errors non fatal if/when we wind up with hir::ConstArg not being so lossy 🤔

@rustbot
Copy link
Copy Markdown
Collaborator

rustbot commented Apr 15, 2026

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.

@mu001999
Copy link
Copy Markdown
Member Author

Can you combine this PR with #154642 since they'll conflict with eachother. Can you also add FIXME(mgca) to both to revisit this and maybe make these errors non fatal if/when we wind up with hir::ConstArg not being so lossy 🤔

Done :)

@BoxyUwU
Copy link
Copy Markdown
Member

BoxyUwU commented Apr 15, 2026

r=me if CI passes

@bors delegate+

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Apr 15, 2026

✌️ @mu001999, you can now approve this pull request!

If @BoxyUwU told you to "r=me" after making some further change, then please make that change and post @bors r=BoxyUwU.

@mu001999
Copy link
Copy Markdown
Member Author

@bors r=BoxyUwU

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors bot commented Apr 15, 2026

📌 Commit 77419b4 has been approved by BoxyUwU

It is now in the queue for this repository.

@rust-bors rust-bors bot 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 Apr 15, 2026
jhpratt added a commit to jhpratt/rust that referenced this pull request Apr 16, 2026
…yUwU

Emit fatal on invalid const args with nested defs

Fixed rust-lang#123629
Fixes rust-lang#154539

Invalid const args are rejected, so their surrounding HIR is not preserved. But nested defs inside them can still get created, leaving children lowered without a valid HIR parent and causing an ICE when later error handling walks HIR parents.

r? @BoxyUwU
rust-bors bot pushed a commit that referenced this pull request Apr 16, 2026
Rollup of 18 pull requests

Successful merges:

 - #154595 (Emit fatal on invalid const args with nested defs)
 - #154599 (report the `varargs_without_pattern` lint in deps)
 - #154699 (`core::unicode`: Replace `Cased` table with `Lt`)
 - #155353 (resolve: Remove `inaccessible_ctor_reexport` resolver field)
 - #155357 (Add `--remap-path-scope` as unstable in rustdoc)
 - #150649 (clippy fix: non_canonical_clone_impl)
 - #154604 (abort in core)
 - #154616 (Add `--quiet` flag to x.py and bootstrap to suppress output)
 - #154970 (rustdoc: preserve `doc(cfg)` on locally re-exported type aliases)
 - #155215 (Clean up `AttributeLintKind` and refactor diagnostic attribute linting)
 - #155228 (Check diagnostic output in incremental `cpass` and `rpass` revisions)
 - #155266 (Adjust release notes for post-merge feedback)
 - #155326 (Disallow ZST allocations with `TypedArena`.)
 - #155334 (docs: Use `0b1` instead of `NonZero::MIN` in `NonZero::bit_width` doctests)
 - #155340 (Handle nonnull pattern types in size skeleton)
 - #155347 (Add push_mut and new Layout methods to release notes)
 - #155356 (remove calls to AliasTyKind::def_id)
 - #155364 (Reduce diagnostic type visibilities.)
jhpratt added a commit to jhpratt/rust that referenced this pull request Apr 16, 2026
…yUwU

Emit fatal on invalid const args with nested defs

Fixed rust-lang#123629
Fixes rust-lang#154539

Invalid const args are rejected, so their surrounding HIR is not preserved. But nested defs inside them can still get created, leaving children lowered without a valid HIR parent and causing an ICE when later error handling walks HIR parents.

r? @BoxyUwU
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]: mgca: No HirId for DefId ICE: No HirID for DefId(...) with feature generic_assert

4 participants