From bd3a097d64dc5a6db9a9d62bb89a74fe5cf36871 Mon Sep 17 00:00:00 2001 From: Santiago Pastorino Date: Tue, 31 May 2022 15:33:51 -0300 Subject: [PATCH] Move lower_generics definition to item.rs --- compiler/rustc_ast_lowering/src/item.rs | 38 +++++++++++++++++++++++++ compiler/rustc_ast_lowering/src/lib.rs | 38 ------------------------- 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/compiler/rustc_ast_lowering/src/item.rs b/compiler/rustc_ast_lowering/src/item.rs index 09d679e6eb7a..1b7fa1da77f2 100644 --- a/compiler/rustc_ast_lowering/src/item.rs +++ b/compiler/rustc_ast_lowering/src/item.rs @@ -1296,6 +1296,44 @@ impl<'hir> LoweringContext<'_, 'hir> { } } + /// Creates a new `hir::GenericParam` for every new `Fresh` lifetime and + /// universal `impl Trait` type parameter encountered while evaluating `f`. + /// Definitions are created with the provided `parent_def_id`. + fn lower_generics( + &mut self, + generics: &Generics, + parent_node_id: NodeId, + itctx: ImplTraitContext, + f: impl FnOnce(&mut Self) -> T, + ) -> (&'hir hir::Generics<'hir>, T) { + match itctx { + ImplTraitContext::Universal(..) => {} + _ => { + debug_assert!(self.impl_trait_defs.is_empty()); + debug_assert!(self.impl_trait_bounds.is_empty()); + } + } + + let mut lowered_generics = self.lower_generics_mut(generics, itctx); + let res = f(self); + + let extra_lifetimes = self.resolver.take_extra_lifetime_params(parent_node_id); + let impl_trait_defs = std::mem::take(&mut self.impl_trait_defs); + lowered_generics.params.extend( + extra_lifetimes + .into_iter() + .filter_map(|(ident, node_id, res)| { + self.lifetime_res_to_generic_param(ident, node_id, res) + }) + .chain(impl_trait_defs.into_iter()), + ); + let impl_trait_bounds = std::mem::take(&mut self.impl_trait_bounds); + lowered_generics.predicates.extend(impl_trait_bounds.into_iter()); + + let lowered_generics = lowered_generics.into_generics(self.arena); + (lowered_generics, res) + } + pub(super) fn lower_generics_mut( &mut self, generics: &Generics, diff --git a/compiler/rustc_ast_lowering/src/lib.rs b/compiler/rustc_ast_lowering/src/lib.rs index 90fc9bf8940c..8315d7aa3f0b 100644 --- a/compiler/rustc_ast_lowering/src/lib.rs +++ b/compiler/rustc_ast_lowering/src/lib.rs @@ -703,44 +703,6 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> { }) } - /// Creates a new `hir::GenericParam` for every new `Fresh` lifetime and - /// universal `impl Trait` type parameter encountered while evaluating `f`. - /// Definitions are created with the provided `parent_def_id`. - fn lower_generics( - &mut self, - generics: &Generics, - parent_node_id: NodeId, - itctx: ImplTraitContext, - f: impl FnOnce(&mut Self) -> T, - ) -> (&'hir hir::Generics<'hir>, T) { - match itctx { - ImplTraitContext::Universal(..) => {} - _ => { - debug_assert!(self.impl_trait_defs.is_empty()); - debug_assert!(self.impl_trait_bounds.is_empty()); - } - } - - let mut lowered_generics = self.lower_generics_mut(generics, itctx); - let res = f(self); - - let extra_lifetimes = self.resolver.take_extra_lifetime_params(parent_node_id); - let impl_trait_defs = std::mem::take(&mut self.impl_trait_defs); - lowered_generics.params.extend( - extra_lifetimes - .into_iter() - .filter_map(|(ident, node_id, res)| { - self.lifetime_res_to_generic_param(ident, node_id, res) - }) - .chain(impl_trait_defs.into_iter()), - ); - let impl_trait_bounds = std::mem::take(&mut self.impl_trait_bounds); - lowered_generics.predicates.extend(impl_trait_bounds.into_iter()); - - let lowered_generics = lowered_generics.into_generics(self.arena); - (lowered_generics, res) - } - /// Setup lifetime capture for and impl-trait. /// The captures will be added to `captures`. fn while_capturing_lifetimes(