manually release cx.external_traits while building the new trait

This commit is contained in:
QuietMisdreavus 2018-02-21 17:44:49 -06:00
parent 27a046e933
commit d98449d110

View File

@ -494,7 +494,11 @@ fn separate_supertrait_bounds(mut g: clean::Generics)
}
pub fn record_extern_trait(cx: &DocContext, did: DefId) {
cx.external_traits.borrow_mut().entry(did).or_insert_with(|| {
build_external_trait(cx, did)
});
if cx.external_traits.borrow().contains_key(did) {
return;
}
let trait_ = build_external_trait(cx, did);
cx.external_traits.borrow_mut().insert(did, trait_);
}