Skip to content

Commit a5743b3

Browse files
committed
change with_in_scope_lifetime_defs to take an iterator
1 parent 1b26be5 commit a5743b3

File tree

1 file changed

+22
-22
lines changed

1 file changed

+22
-22
lines changed

src/librustc/hir/lowering.rs

+22-22
Original file line numberDiff line numberDiff line change
@@ -612,12 +612,16 @@ impl<'a> LoweringContext<'a> {
612612
// This is used to track which lifetimes have already been defined, and
613613
// which are new in-band lifetimes that need to have a definition created
614614
// for them.
615-
fn with_in_scope_lifetime_defs<T, F>(&mut self, lt_defs: &[LifetimeDef], f: F) -> T
615+
fn with_in_scope_lifetime_defs<'l, T, F>(
616+
&mut self,
617+
lt_defs: impl Iterator<Item = &'l LifetimeDef>,
618+
f: F,
619+
) -> T
616620
where
617621
F: FnOnce(&mut LoweringContext) -> T,
618622
{
619623
let old_len = self.in_scope_lifetimes.len();
620-
let lt_def_names = lt_defs.iter().map(|lt_def| lt_def.lifetime.ident.name);
624+
let lt_def_names = lt_defs.map(|lt_def| lt_def.lifetime.ident.name);
621625
self.in_scope_lifetimes.extend(lt_def_names);
622626

623627
let res = f(self);
@@ -657,14 +661,13 @@ impl<'a> LoweringContext<'a> {
657661
F: FnOnce(&mut LoweringContext) -> T,
658662
{
659663
let (in_band_defs, (mut lowered_generics, res)) = self.with_in_scope_lifetime_defs(
660-
&generics
664+
generics
661665
.params
662666
.iter()
663-
.filter_map(|p| match *p {
664-
GenericParam::Lifetime(ref ld) => Some(ld.clone()),
667+
.filter_map(|p| match p {
668+
GenericParam::Lifetime(ld) => Some(ld),
665669
_ => None,
666-
})
667-
.collect::<Vec<_>>(),
670+
}),
668671
|this| {
669672
this.collect_in_band_defs(parent_id, |this| {
670673
(this.lower_generics(generics), f(this))
@@ -923,13 +926,12 @@ impl<'a> LoweringContext<'a> {
923926
hir::TyRptr(lifetime, self.lower_mt(mt, itctx))
924927
}
925928
TyKind::BareFn(ref f) => self.with_in_scope_lifetime_defs(
926-
&f.generic_params
929+
f.generic_params
927930
.iter()
928-
.filter_map(|p| match *p {
929-
GenericParam::Lifetime(ref ld) => Some(ld.clone()),
931+
.filter_map(|p| match p {
932+
GenericParam::Lifetime(ld) => Some(ld),
930933
_ => None,
931-
})
932-
.collect::<Vec<_>>(),
934+
}),
933935
|this| {
934936
hir::TyBareFn(P(hir::BareFnTy {
935937
generic_params: this.lower_generic_params(&f.generic_params, &NodeMap()),
@@ -1874,13 +1876,12 @@ impl<'a> LoweringContext<'a> {
18741876
span,
18751877
}) => {
18761878
self.with_in_scope_lifetime_defs(
1877-
&bound_generic_params
1879+
bound_generic_params
18781880
.iter()
1879-
.filter_map(|p| match *p {
1880-
GenericParam::Lifetime(ref ld) => Some(ld.clone()),
1881+
.filter_map(|p| match p {
1882+
GenericParam::Lifetime(ld) => Some(ld),
18811883
_ => None,
1882-
})
1883-
.collect::<Vec<_>>(),
1884+
}),
18841885
|this| {
18851886
hir::WherePredicate::BoundPredicate(hir::WhereBoundPredicate {
18861887
bound_generic_params: this.lower_generic_params(
@@ -2169,14 +2170,13 @@ impl<'a> LoweringContext<'a> {
21692170
});
21702171

21712172
let new_impl_items = self.with_in_scope_lifetime_defs(
2172-
&ast_generics
2173+
ast_generics
21732174
.params
21742175
.iter()
2175-
.filter_map(|p| match *p {
2176-
GenericParam::Lifetime(ref ld) => Some(ld.clone()),
2176+
.filter_map(|p| match p {
2177+
GenericParam::Lifetime(ld) => Some(ld),
21772178
_ => None,
2178-
})
2179-
.collect::<Vec<_>>(),
2179+
}),
21802180
|this| {
21812181
impl_items
21822182
.iter()

0 commit comments

Comments
 (0)