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_mir/src | |
| 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_mir/src')
| -rw-r--r-- | compiler/rustc_mir/src/const_eval/fn_queries.rs | 2 | ||||
| -rw-r--r-- | compiler/rustc_mir/src/monomorphize/collector.rs | 6 |
2 files changed, 4 insertions, 4 deletions
diff --git a/compiler/rustc_mir/src/const_eval/fn_queries.rs b/compiler/rustc_mir/src/const_eval/fn_queries.rs index aca822a05bd..8c18dfcb8d0 100644 --- a/compiler/rustc_mir/src/const_eval/fn_queries.rs +++ b/compiler/rustc_mir/src/const_eval/fn_queries.rs @@ -126,7 +126,7 @@ fn is_const_impl_raw(tcx: TyCtxt<'_>, def_id: LocalDefId) -> bool { matches!( node, hir::Node::Item(hir::Item { - kind: hir::ItemKind::Impl { constness: hir::Constness::Const, .. }, + kind: hir::ItemKind::Impl(hir::Impl { constness: hir::Constness::Const, .. }), .. }) ) diff --git a/compiler/rustc_mir/src/monomorphize/collector.rs b/compiler/rustc_mir/src/monomorphize/collector.rs index 6370ead97e7..a8f2b4d60e1 100644 --- a/compiler/rustc_mir/src/monomorphize/collector.rs +++ b/compiler/rustc_mir/src/monomorphize/collector.rs @@ -1146,8 +1146,8 @@ fn create_mono_items_for_default_impls<'tcx>( output: &mut Vec<Spanned<MonoItem<'tcx>>>, ) { match item.kind { - hir::ItemKind::Impl { ref generics, ref items, .. } => { - for param in generics.params { + hir::ItemKind::Impl(ref impl_) => { + for param in impl_.generics.params { match param.kind { hir::GenericParamKind::Lifetime { .. } => {} hir::GenericParamKind::Type { .. } | hir::GenericParamKind::Const { .. } => { @@ -1167,7 +1167,7 @@ fn create_mono_items_for_default_impls<'tcx>( let param_env = ty::ParamEnv::reveal_all(); let trait_ref = tcx.normalize_erasing_regions(param_env, trait_ref); let overridden_methods: FxHashSet<_> = - items.iter().map(|iiref| iiref.ident.normalize_to_macros_2_0()).collect(); + impl_.items.iter().map(|iiref| iiref.ident.normalize_to_macros_2_0()).collect(); for method in tcx.provided_trait_methods(trait_ref.def_id) { if overridden_methods.contains(&method.ident.normalize_to_macros_2_0()) { continue; |
