Skip to content

Don't make a def id for impl_trait_in_bindings #134313

New issue

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

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

Already on GitHub? # to your account

Merged
merged 1 commit into from
Dec 15, 2024

Conversation

compiler-errors
Copy link
Member

The def collector is awkward, so for now just wrap let statements in a new ImplTraitContext::InBinding which tells visit_ty not to make a def id for the type. This will not generalize to other ITIB cases, like if we allow them in turbofishes (e.g. foo::<impl Fn()>(|| {})).

Fixes #134307

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 Dec 14, 2024
@rust-log-analyzer

This comment has been minimized.

@oli-obk
Copy link
Contributor

oli-obk commented Dec 14, 2024

Hmmm... I don't know why we can't just wrap bodies in the new binding context, but this is a good enough fix for the short term, so let's go with it and think about it in parallel

@bors r+

@bors
Copy link
Collaborator

bors commented Dec 14, 2024

📌 Commit ca055ee 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 Dec 14, 2024
@compiler-errors
Copy link
Member Author

because there's no good place to put it, there's no visit_body function

bors added a commit to rust-lang-ci/rust that referenced this pull request Dec 15, 2024
Rollup of 7 pull requests

Successful merges:

 - rust-lang#130361 (std::net: Solaris supports `SOCK_CLOEXEC` as well since 11.4.)
 - rust-lang#133406 (Add value accessor methods to `Mutex` and `RwLock`)
 - rust-lang#133633 (don't show the full linker args unless `--verbose` is passed)
 - rust-lang#134285 (Add some convenience helper methods on `hir::Safety`)
 - rust-lang#134310 (Add clarity to the examples of some `Vec` & `VecDeque` methods)
 - rust-lang#134313 (Don't make a def id for `impl_trait_in_bindings`)
 - rust-lang#134315 (A couple of polonius fact generation cleanups)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 81378c8 into rust-lang:master Dec 15, 2024
6 checks passed
@rustbot rustbot added this to the 1.85.0 milestone Dec 15, 2024
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Dec 15, 2024
Rollup merge of rust-lang#134313 - compiler-errors:no-itib-def-id, r=oli-obk

Don't make a def id for `impl_trait_in_bindings`

The def collector is awkward, so for now just wrap let statements in a new `ImplTraitContext::InBinding` which tells `visit_ty` not to make a def id for the type. This will not generalize to other ITIB cases, like if we allow them in turbofishes (e.g. `foo::<impl Fn()>(|| {})`).

Fixes rust-lang#134307

r? oli-obk
github-actions bot pushed a commit to tautschnig/verify-rust-std that referenced this pull request Mar 11, 2025
Rollup of 7 pull requests

Successful merges:

 - rust-lang#130361 (std::net: Solaris supports `SOCK_CLOEXEC` as well since 11.4.)
 - rust-lang#133406 (Add value accessor methods to `Mutex` and `RwLock`)
 - rust-lang#133633 (don't show the full linker args unless `--verbose` is passed)
 - rust-lang#134285 (Add some convenience helper methods on `hir::Safety`)
 - rust-lang#134310 (Add clarity to the examples of some `Vec` & `VecDeque` methods)
 - rust-lang#134313 (Don't make a def id for `impl_trait_in_bindings`)
 - rust-lang#134315 (A couple of polonius fact generation cleanups)

r? `@ghost`
`@rustbot` modify labels: rollup
# for free to join this conversation on GitHub. Already have an account? # 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: impl_trait_in_bindings: No HirId for DefId
5 participants