Skip to content

Commit

Permalink
Rollup merge of #100157 - rust-lang:notriddle/use-map-instead-of-repe…
Browse files Browse the repository at this point in the history
…ated-push, r=Dylan-DPC

rustdoc: use `collect()` instead of repeatedly pushing
  • Loading branch information
Dylan-DPC authored Aug 5, 2022
2 parents 721af40 + 70a6ae6 commit 97440b5
Showing 1 changed file with 17 additions and 17 deletions.
34 changes: 17 additions & 17 deletions src/librustdoc/clean/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1617,9 +1617,10 @@ pub(crate) fn clean_middle_ty<'tcx>(
// HACK: pick the first `did` as the `did` of the trait object. Someone
// might want to implement "native" support for marker-trait-only
// trait objects.
let mut dids = obj.principal_def_id().into_iter().chain(obj.auto_traits());
let did = dids
.next()
let mut dids = obj.auto_traits();
let did = obj
.principal_def_id()
.or_else(|| dids.next())
.unwrap_or_else(|| panic!("found trait object `{:?}` with no traits?", this));
let substs = match obj.principal() {
Some(principal) => principal.skip_binder().substs,
Expand All @@ -1630,19 +1631,18 @@ pub(crate) fn clean_middle_ty<'tcx>(
inline::record_extern_fqn(cx, did, ItemType::Trait);

let lifetime = clean_middle_region(*reg);
let mut bounds = vec![];

for did in dids {
let empty = cx.tcx.intern_substs(&[]);
let path = external_path(cx, did, false, vec![], empty);
inline::record_extern_fqn(cx, did, ItemType::Trait);
let bound = PolyTrait { trait_: path, generic_params: Vec::new() };
bounds.push(bound);
}
let mut bounds = dids
.map(|did| {
let empty = cx.tcx.intern_substs(&[]);
let path = external_path(cx, did, false, vec![], empty);
inline::record_extern_fqn(cx, did, ItemType::Trait);
PolyTrait { trait_: path, generic_params: Vec::new() }
})
.collect::<Vec<_>>();

let mut bindings = vec![];
for pb in obj.projection_bounds() {
bindings.push(TypeBinding {
let bindings = obj
.projection_bounds()
.map(|pb| TypeBinding {
assoc: projection_to_path_segment(
pb.skip_binder()
.lift_to_tcx(cx.tcx)
Expand All @@ -1656,8 +1656,8 @@ pub(crate) fn clean_middle_ty<'tcx>(
kind: TypeBindingKind::Equality {
term: clean_middle_term(pb.skip_binder().term, cx),
},
});
}
})
.collect();

let path = external_path(cx, did, false, bindings, substs);
bounds.insert(0, PolyTrait { trait_: path, generic_params: Vec::new() });
Expand Down

0 comments on commit 97440b5

Please sign in to comment.