Skip to content

Conversation

compiler-errors
Copy link
Member

We currently have logic to avoid reporting lifetime bivariance ("lifetime parameter ... is never used") errors when a struct has field resolution errors. However, this doesn't apply transitively. This PR implements a simple visitor to do so.

This was reported here since a derive(Deserialize, Serialize) ends up generating helper structs which have bivariant lifetimes due to containing the offending struct (that's being derived on).

@rustbot
Copy link
Collaborator

rustbot commented Oct 15, 2024

r? @jackh726

rustbot has assigned @jackh726.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@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 Oct 15, 2024
@estebank
Copy link
Contributor

@bors r+

@bors
Copy link
Collaborator

bors commented Oct 15, 2024

📌 Commit 6888521 has been approved by estebank

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 Oct 15, 2024
@compiler-errors
Copy link
Member Author

diagnostics-path only

@bors rollup

matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Oct 16, 2024
…nce, r=estebank

Don't report bivariance error when nesting a struct with field errors into another struct

We currently have logic to avoid reporting lifetime bivariance ("lifetime parameter ... is never used") errors when a struct has field resolution errors. However, this doesn't apply transitively. This PR implements a simple visitor to do so.

This was reported [here](https://twitter.com/fasterthanlime/status/1846257921086165033) since a `derive(Deserialize, Serialize)` ends up generating helper structs which have bivariant lifetimes due to containing the offending struct (that's being derived on).
bors added a commit to rust-lang-ci/rust that referenced this pull request Oct 16, 2024
Rollup of 10 pull requests

Successful merges:

 - rust-lang#131582 (Add wasm32-unknown-emscripten platform support document)
 - rust-lang#131694 (Make fuchsia-test-runner.py compatible with new JSON output from llvm-readelf)
 - rust-lang#131700 (Fix match_same_arms in stable_mir)
 - rust-lang#131712 (Mark the unstable LazyCell::into_inner const)
 - rust-lang#131746 (Relax a memory order in `once_box`)
 - rust-lang#131754 (Don't report bivariance error when nesting a struct with field errors into another struct)
 - rust-lang#131760 (llvm: Match aarch64 data layout to new LLVM layout)
 - rust-lang#131764 (Fix unnecessary nesting in run-make test output directories)
 - rust-lang#131766 (Add mailmap entry for my dev-desktop setup)
 - rust-lang#131771 (Handle gracefully true/false in `cfg(target(..))` compact)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 329e570 into rust-lang:master Oct 16, 2024
6 checks passed
@rustbot rustbot added this to the 1.84.0 milestone Oct 16, 2024
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Oct 16, 2024
Rollup merge of rust-lang#131754 - compiler-errors:bivariance-bivariance, r=estebank

Don't report bivariance error when nesting a struct with field errors into another struct

We currently have logic to avoid reporting lifetime bivariance ("lifetime parameter ... is never used") errors when a struct has field resolution errors. However, this doesn't apply transitively. This PR implements a simple visitor to do so.

This was reported [here](https://twitter.com/fasterthanlime/status/1846257921086165033) since a `derive(Deserialize, Serialize)` ends up generating helper structs which have bivariant lifetimes due to containing the offending struct (that's being derived on).
@compiler-errors compiler-errors deleted the bivariance-bivariance branch October 16, 2024 16:26
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.

5 participants