Use a HashSet instead of Vec

This commit is contained in:
Mark Rousskov 2019-08-10 17:10:13 -04:00
parent 0347480151
commit eea2f879af
2 changed files with 4 additions and 6 deletions

View File

@ -581,13 +581,11 @@ pub fn record_extern_trait(cx: &DocContext<'_>, did: DefId) {
}
}
cx.active_extern_traits.borrow_mut().push(did);
cx.active_extern_traits.borrow_mut().insert(did);
debug!("record_extern_trait: {:?}", did);
let trait_ = build_external_trait(cx, did);
{
cx.external_traits.borrow_mut().insert(did, trait_);
}
cx.active_extern_traits.borrow_mut().remove_item(&did);
cx.external_traits.borrow_mut().insert(did, trait_);
cx.active_extern_traits.borrow_mut().remove(&did);
}

View File

@ -51,7 +51,7 @@ pub struct DocContext<'tcx> {
pub external_traits: Rc<RefCell<FxHashMap<DefId, clean::Trait>>>,
/// Used while populating `external_traits` to ensure we don't process the same trait twice at
/// the same time.
pub active_extern_traits: RefCell<Vec<DefId>>,
pub active_extern_traits: RefCell<FxHashSet<DefId>>,
// The current set of type and lifetime substitutions,
// for expanding type aliases at the HIR level: