Skip to content

Normalize ADT field in find_tails_for_unsizing #139818

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

Merged
merged 1 commit into from
Apr 15, 2025

Conversation

compiler-errors
Copy link
Member

See the comment inline and in the test.

TL;DR is that we're getting getting a type from a type_of query and then matching on it structurally in codegen, so we're obligated to normalize it. The fact that this wasn't triggered earlier is that all of the types that have CoerceUnsized implementations never encounter aliases when peeling the ADT down to their base reference/ptr type.

NOTE: I also renamed some things and reorganized the function a bit.

Fixes #139812
Fixes #74451, which I didn't think was interesting enough to add another test.

r? oli-obk

@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 Apr 14, 2025
@rustbot
Copy link
Collaborator

rustbot commented Apr 14, 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.

@oli-obk
Copy link
Contributor

oli-obk commented Apr 15, 2025

@bors r+ rollup

@bors
Copy link
Collaborator

bors commented Apr 15, 2025

📌 Commit 3df7882 has been approved by oli-obk

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 Apr 15, 2025
Zalathar added a commit to Zalathar/rust that referenced this pull request Apr 15, 2025
…=oli-obk

Normalize ADT field in `find_tails_for_unsizing`

See the comment inline and in the test.

TL;DR is that we're getting getting a type from a `type_of` query and then matching on it structurally in codegen, so we're obligated to normalize it. The fact that this wasn't triggered earlier is that all of the types that have `CoerceUnsized` implementations never encounter aliases when peeling the ADT down to their base reference/ptr type.

**NOTE**: I also renamed some things and reorganized the function a bit.

Fixes rust-lang#139812
Fixes rust-lang#74451, which I didn't think was interesting enough to add another test.

r? oli-obk
bors added a commit to rust-lang-ci/rust that referenced this pull request Apr 15, 2025
Rollup of 5 pull requests

Successful merges:

 - rust-lang#138906 (Reject test executables when not supported by target)
 - rust-lang#139818 (Normalize ADT field in `find_tails_for_unsizing`)
 - rust-lang#139819 (Use `rust-cache` to speed-up `citool` compilation)
 - rust-lang#139824 (Remove safe remove)
 - rust-lang#139859 (CI: rename MacOS runner)

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

Rollup of 7 pull requests

Successful merges:

 - rust-lang#138455 (`librustdoc`: more `impl fmt::Display`)
 - rust-lang#139818 (Normalize ADT field in `find_tails_for_unsizing`)
 - rust-lang#139819 (Use `rust-cache` to speed-up `citool` compilation)
 - rust-lang#139824 (Remove safe remove)
 - rust-lang#139848 ( Reduce kw::Empty usage, part 5)
 - rust-lang#139859 (CI: rename MacOS runner)
 - rust-lang#139877 (Add warning comment to `Take::get_ref` and `Chain::get_ref`)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 27f1f4d into rust-lang:master Apr 15, 2025
6 checks passed
@rustbot rustbot added this to the 1.88.0 milestone Apr 15, 2025
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Apr 15, 2025
Rollup merge of rust-lang#139818 - compiler-errors:normalize-tails, r=oli-obk

Normalize ADT field in `find_tails_for_unsizing`

See the comment inline and in the test.

TL;DR is that we're getting getting a type from a `type_of` query and then matching on it structurally in codegen, so we're obligated to normalize it. The fact that this wasn't triggered earlier is that all of the types that have `CoerceUnsized` implementations never encounter aliases when peeling the ADT down to their base reference/ptr type.

**NOTE**: I also renamed some things and reorganized the function a bit.

Fixes rust-lang#139812
Fixes rust-lang#74451, which I didn't think was interesting enough to add another test.

r? oli-obk
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
4 participants