Skip to content

Commit e0cb1ae

Browse files
Make provided_trait_methods use impl Iterator
1 parent 52f7711 commit e0cb1ae

File tree

5 files changed

+9
-17
lines changed

5 files changed

+9
-17
lines changed

src/librustc/ty/mod.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -2705,11 +2705,10 @@ impl<'tcx> TyCtxt<'tcx> {
27052705
.for_each(|&body_id| f(self.hir().body_owner_def_id(body_id)));
27062706
}
27072707

2708-
pub fn provided_trait_methods(self, id: DefId) -> Vec<&'tcx AssocItem> {
2708+
pub fn provided_trait_methods(self, id: DefId) -> impl Iterator<Item = &'tcx AssocItem> {
27092709
self.associated_items(id)
27102710
.iter()
27112711
.filter(|item| item.kind == AssocKind::Method && item.defaultness.has_value())
2712-
.collect()
27132712
}
27142713

27152714
pub fn trait_relevant_for_never(self, did: DefId) -> bool {

src/librustc_passes/reachable.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -362,12 +362,12 @@ impl<'a, 'tcx> ItemLikeVisitor<'tcx> for CollectPrivateImplItemsVisitor<'a, 'tcx
362362
return;
363363
}
364364

365-
let provided_trait_methods = self.tcx.provided_trait_methods(trait_def_id);
366-
self.worklist.reserve(provided_trait_methods.len());
367-
for default_method in provided_trait_methods {
368-
let hir_id = self.tcx.hir().as_local_hir_id(default_method.def_id).unwrap();
369-
self.worklist.push(hir_id);
370-
}
365+
// FIXME(#53488) remove `let`
366+
let tcx = self.tcx;
367+
self.worklist.extend(
368+
tcx.provided_trait_methods(trait_def_id)
369+
.map(|assoc| tcx.hir().as_local_hir_id(assoc.def_id).unwrap()),
370+
);
371371
}
372372
}
373373
}

src/librustdoc/clean/blanket_impl.rs

-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@ impl<'a, 'tcx> BlanketImplFinder<'a, 'tcx> {
8787
.cx
8888
.tcx
8989
.provided_trait_methods(trait_def_id)
90-
.into_iter()
9190
.map(|meth| meth.ident.to_string())
9291
.collect();
9392

src/librustdoc/clean/inline.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -402,9 +402,7 @@ pub fn build_impl(
402402

403403
let provided = trait_
404404
.def_id()
405-
.map(|did| {
406-
tcx.provided_trait_methods(did).into_iter().map(|meth| meth.ident.to_string()).collect()
407-
})
405+
.map(|did| tcx.provided_trait_methods(did).map(|meth| meth.ident.to_string()).collect())
408406
.unwrap_or_default();
409407

410408
debug!("build_impl: impl {:?} for {:?}", trait_.def_id(), for_.def_id());

src/librustdoc/clean/mod.rs

+1-5
Original file line numberDiff line numberDiff line change
@@ -2108,11 +2108,7 @@ impl Clean<Vec<Item>> for doctree::Impl<'_> {
21082108
let provided: FxHashSet<String> = trait_
21092109
.def_id()
21102110
.map(|did| {
2111-
cx.tcx
2112-
.provided_trait_methods(did)
2113-
.into_iter()
2114-
.map(|meth| meth.ident.to_string())
2115-
.collect()
2111+
cx.tcx.provided_trait_methods(did).map(|meth| meth.ident.to_string()).collect()
21162112
})
21172113
.unwrap_or_default();
21182114

0 commit comments

Comments
 (0)