Separate out a hir::Impl
struct
This makes it possible to pass the `Impl` directly to functions, instead of having to pass each of the many fields one at a time. It also simplifies matches in many cases.
This commit is contained in:
parent
fd34606ddf
commit
a8ff647deb
61 changed files with 258 additions and 246 deletions
|
@ -32,7 +32,7 @@ pub(crate) fn target_from_impl_item<'tcx>(
|
|||
let parent_hir_id = tcx.hir().get_parent_item(impl_item.hir_id);
|
||||
let containing_item = tcx.hir().expect_item(parent_hir_id);
|
||||
let containing_impl_is_for_trait = match &containing_item.kind {
|
||||
hir::ItemKind::Impl { ref of_trait, .. } => of_trait.is_some(),
|
||||
hir::ItemKind::Impl(impl_) => impl_.of_trait.is_some(),
|
||||
_ => bug!("parent of an ImplItem must be an Impl"),
|
||||
};
|
||||
if containing_impl_is_for_trait {
|
||||
|
@ -343,7 +343,7 @@ impl CheckAttrVisitor<'tcx> {
|
|||
// We can't link to trait impl's consts.
|
||||
let err = "associated constant in trait implementation block";
|
||||
match containing_item.kind {
|
||||
ItemKind::Impl { of_trait: Some(_), .. } => Some(err),
|
||||
ItemKind::Impl(hir::Impl { of_trait: Some(_), .. }) => Some(err),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue