}
}
- 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);
}
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: