Skip to content

Commit bd3a097

Browse files
committed
Move lower_generics definition to item.rs
1 parent d5ab8b2 commit bd3a097

File tree

2 files changed

+38
-38
lines changed

2 files changed

+38
-38
lines changed

compiler/rustc_ast_lowering/src/item.rs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1296,6 +1296,44 @@ impl<'hir> LoweringContext<'_, 'hir> {
12961296
}
12971297
}
12981298

1299+
/// Creates a new `hir::GenericParam` for every new `Fresh` lifetime and
1300+
/// universal `impl Trait` type parameter encountered while evaluating `f`.
1301+
/// Definitions are created with the provided `parent_def_id`.
1302+
fn lower_generics<T>(
1303+
&mut self,
1304+
generics: &Generics,
1305+
parent_node_id: NodeId,
1306+
itctx: ImplTraitContext,
1307+
f: impl FnOnce(&mut Self) -> T,
1308+
) -> (&'hir hir::Generics<'hir>, T) {
1309+
match itctx {
1310+
ImplTraitContext::Universal(..) => {}
1311+
_ => {
1312+
debug_assert!(self.impl_trait_defs.is_empty());
1313+
debug_assert!(self.impl_trait_bounds.is_empty());
1314+
}
1315+
}
1316+
1317+
let mut lowered_generics = self.lower_generics_mut(generics, itctx);
1318+
let res = f(self);
1319+
1320+
let extra_lifetimes = self.resolver.take_extra_lifetime_params(parent_node_id);
1321+
let impl_trait_defs = std::mem::take(&mut self.impl_trait_defs);
1322+
lowered_generics.params.extend(
1323+
extra_lifetimes
1324+
.into_iter()
1325+
.filter_map(|(ident, node_id, res)| {
1326+
self.lifetime_res_to_generic_param(ident, node_id, res)
1327+
})
1328+
.chain(impl_trait_defs.into_iter()),
1329+
);
1330+
let impl_trait_bounds = std::mem::take(&mut self.impl_trait_bounds);
1331+
lowered_generics.predicates.extend(impl_trait_bounds.into_iter());
1332+
1333+
let lowered_generics = lowered_generics.into_generics(self.arena);
1334+
(lowered_generics, res)
1335+
}
1336+
12991337
pub(super) fn lower_generics_mut(
13001338
&mut self,
13011339
generics: &Generics,

compiler/rustc_ast_lowering/src/lib.rs

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -703,44 +703,6 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
703703
})
704704
}
705705

706-
/// Creates a new `hir::GenericParam` for every new `Fresh` lifetime and
707-
/// universal `impl Trait` type parameter encountered while evaluating `f`.
708-
/// Definitions are created with the provided `parent_def_id`.
709-
fn lower_generics<T>(
710-
&mut self,
711-
generics: &Generics,
712-
parent_node_id: NodeId,
713-
itctx: ImplTraitContext,
714-
f: impl FnOnce(&mut Self) -> T,
715-
) -> (&'hir hir::Generics<'hir>, T) {
716-
match itctx {
717-
ImplTraitContext::Universal(..) => {}
718-
_ => {
719-
debug_assert!(self.impl_trait_defs.is_empty());
720-
debug_assert!(self.impl_trait_bounds.is_empty());
721-
}
722-
}
723-
724-
let mut lowered_generics = self.lower_generics_mut(generics, itctx);
725-
let res = f(self);
726-
727-
let extra_lifetimes = self.resolver.take_extra_lifetime_params(parent_node_id);
728-
let impl_trait_defs = std::mem::take(&mut self.impl_trait_defs);
729-
lowered_generics.params.extend(
730-
extra_lifetimes
731-
.into_iter()
732-
.filter_map(|(ident, node_id, res)| {
733-
self.lifetime_res_to_generic_param(ident, node_id, res)
734-
})
735-
.chain(impl_trait_defs.into_iter()),
736-
);
737-
let impl_trait_bounds = std::mem::take(&mut self.impl_trait_bounds);
738-
lowered_generics.predicates.extend(impl_trait_bounds.into_iter());
739-
740-
let lowered_generics = lowered_generics.into_generics(self.arena);
741-
(lowered_generics, res)
742-
}
743-
744706
/// Setup lifetime capture for and impl-trait.
745707
/// The captures will be added to `captures`.
746708
fn while_capturing_lifetimes<T>(

0 commit comments

Comments
 (0)