diff options
| author | bors <bors@rust-lang.org> | 2021-01-13 01:40:41 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-01-13 01:40:41 +0000 |
| commit | 150d1fee04856ff158e34e8d687a7fe59e97ef33 (patch) | |
| tree | ff41418d95d6a5e8d493980c14fa249f59fc1099 /compiler/rustc_infer | |
| parent | 058a71016553f267ae80b90276ef79956457d51a (diff) | |
| parent | a8ff647deb102f4669025be3ba45ae2990ef0c08 (diff) | |
| download | rust-150d1fee04856ff158e34e8d687a7fe59e97ef33.tar.gz rust-150d1fee04856ff158e34e8d687a7fe59e97ef33.zip | |
Auto merge of #79322 - jyn514:refactor-impl, r=estebank
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. See `rustc_save_analysis::dump_visitor::process_impl` or `rustdoc::clean::clean_impl` for a good example of how this makes `impl`s easier to work with. r? `@petrochenkov` maybe?
Diffstat (limited to 'compiler/rustc_infer')
| -rw-r--r-- | compiler/rustc_infer/src/infer/error_reporting/nice_region_error/static_impl_trait.rs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/compiler/rustc_infer/src/infer/error_reporting/nice_region_error/static_impl_trait.rs b/compiler/rustc_infer/src/infer/error_reporting/nice_region_error/static_impl_trait.rs index 5264854d8eb..c6ae71ba330 100644 --- a/compiler/rustc_infer/src/infer/error_reporting/nice_region_error/static_impl_trait.rs +++ b/compiler/rustc_infer/src/infer/error_reporting/nice_region_error/static_impl_trait.rs @@ -345,9 +345,10 @@ impl<'a, 'tcx> NiceRegionError<'a, 'tcx> { match tcx.hir().get_if_local(def_id) { Some(Node::ImplItem(ImplItem { ident, hir_id, .. })) => { match tcx.hir().find(tcx.hir().get_parent_item(*hir_id)) { - Some(Node::Item(Item { kind: ItemKind::Impl { self_ty, .. }, .. })) => { - Some((*ident, self_ty)) - } + Some(Node::Item(Item { + kind: ItemKind::Impl(hir::Impl { self_ty, .. }), + .. + })) => Some((*ident, self_ty)), _ => None, } } @@ -367,7 +368,7 @@ impl<'a, 'tcx> NiceRegionError<'a, 'tcx> { let impl_did = tcx.hir().local_def_id(*impl_node); match tcx.hir().get_if_local(impl_did.to_def_id()) { Some(Node::Item(Item { - kind: ItemKind::Impl { self_ty, .. }, + kind: ItemKind::Impl(hir::Impl { self_ty, .. }), .. })) if trait_objects.iter().all(|did| { // FIXME: we should check `self_ty` against the receiver |
