Skip to content

Improve the doc of query associated_item - #125454

Merged
bors merged 1 commit into
rust-lang:masterfrom
mu001999-contrib:master
May 23, 2024
Merged

Improve the doc of query associated_item#125454
bors merged 1 commit into
rust-lang:masterfrom
mu001999-contrib:master

Conversation

@mu001999

@mu001999mu001999 commented May 23, 2024

Copy link
Copy Markdown
Member

This query also maps from a impl item to the impl item "descriptor". So it's a bit confused, I skipped it cause it doesn't say it contains impl items.

fnassociated_item(tcx:TyCtxt<'_>,def_id:LocalDefId) -> ty::AssocItem{let id = tcx.local_def_id_to_hir_id(def_id);let parent_def_id = tcx.hir().get_parent_item(id);let parent_item = tcx.hir().expect_item(parent_def_id.def_id);match parent_item.kind{
hir::ItemKind::Impl(impl_) => {ifletSome(impl_item_ref) = impl_.items.iter().find(|i| i.id.owner_id.def_id == def_id){let assoc_item = associated_item_from_impl_item_ref(impl_item_ref);debug_assert_eq!(assoc_item.def_id.expect_local(), def_id);return assoc_item;}}
hir::ItemKind::Trait(.., trait_item_refs) => {ifletSome(trait_item_ref) =
trait_item_refs.iter().find(|i| i.id.owner_id.def_id == def_id){let assoc_item = associated_item_from_trait_item_ref(trait_item_ref);debug_assert_eq!(assoc_item.def_id.expect_local(), def_id);return assoc_item;}}
_ => {}}span_bug!(
parent_item.span,"unexpected parent of trait or impl item or item not found: {:?}",
parent_item.kind
)}

@rustbot

Copy link
Copy Markdown
Collaborator

r? @oli-obk

rustbot has assigned @oli-obk.
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

@rustbotrustbot 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 May 23, 2024
@oli-obk

Copy link
Copy Markdown
Contributor

@bors r+ rollup

@bors

bors commented May 23, 2024

Copy link
Copy Markdown
Collaborator

📌 Commit b1fa845 has been approved by oli-obk

It is now in the queue for this repository.

@borsbors 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 May 23, 2024
@fmeasefmease mentioned this pull request May 23, 2024
bors added a commit to rust-lang-ci/rust that referenced this pull request May 23, 2024
Rollup of 7 pull requests
Successful merges:
- rust-lang#122382 (Detect unused structs which implement private traits)
- rust-lang#124389 (Add a warning to proc_macro::Delimiter::None that rustc currently does not respect it.)
- rust-lang#125224 (Migrate `run-make/issue-53964` to `rmake`)
- rust-lang#125227 (Migrate `run-make/issue-30063` to `rmake`)
- rust-lang#125336 (Add dedicated definition for intrinsics)
- rust-lang#125401 (Migrate `run-make/rustdoc-scrape-examples-macros` to `rmake.rs`)
- rust-lang#125454 (Improve the doc of query associated_item)
r? `@ghost`
`@rustbot` modify labels: rollup
@bors
bors merged commit 55a16a4 into rust-lang:masterMay 23, 2024
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request May 23, 2024
Rollup merge of rust-lang#125454 - mu001999-contrib:master, r=oli-obk
Improve the doc of query associated_item
<!--
If this PR is related to an unstable feature or an otherwise tracked effort,
please link to the relevant tracking issue here. If you don't know of a related
tracking issue or there are none, feel free to ignore this.
This PR will get automatically assigned to a reviewer. In case you would like
a specific user to review your work, you can assign it to them by using
r​? <reviewer name>
-->
This query also maps from a impl item to the impl item "descriptor". So it's a bit confused, I skipped it cause it doesn't say it contains impl items.
```rust
fn associated_item(tcx: TyCtxt<'_>, def_id: LocalDefId) -> ty::AssocItem {
let id = tcx.local_def_id_to_hir_id(def_id);
let parent_def_id = tcx.hir().get_parent_item(id);
let parent_item = tcx.hir().expect_item(parent_def_id.def_id);
match parent_item.kind {
hir::ItemKind::Impl(impl_) => {
if let Some(impl_item_ref) = impl_.items.iter().find(|i| i.id.owner_id.def_id == def_id)
{
let assoc_item = associated_item_from_impl_item_ref(impl_item_ref);
debug_assert_eq!(assoc_item.def_id.expect_local(), def_id);
return assoc_item;
}
}
hir::ItemKind::Trait(.., trait_item_refs) => {
if let Some(trait_item_ref) =
trait_item_refs.iter().find(|i| i.id.owner_id.def_id == def_id)
{
let assoc_item = associated_item_from_trait_item_ref(trait_item_ref);
debug_assert_eq!(assoc_item.def_id.expect_local(), def_id);
return assoc_item;
}
}
_ => {}
}
span_bug!(
parent_item.span,
"unexpected parent of trait or impl item or item not found: {:?}",
parent_item.kind
)
}
```
@rustbotrustbot added this to the 1.80.0 milestone May 23, 2024
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant 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.

4 participants

@mu001999@rustbot@oli-obk@bors