1
Fork 0

Rollup merge of #55778 - nnethercote:LrcPreds, r=eddyb

Wrap some query results in `Lrc`.

So that the frequent clones in `try_get` are cheaper.
This commit is contained in:
Pietro Albini 2018-11-15 11:04:36 +01:00 committed by GitHub
commit 97d0d8964e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 73 additions and 69 deletions

View file

@ -1563,7 +1563,7 @@ impl Clean<Generics> for hir::Generics {
}
impl<'a, 'tcx> Clean<Generics> for (&'a ty::Generics,
&'a ty::GenericPredicates<'tcx>) {
&'a Lrc<ty::GenericPredicates<'tcx>>) {
fn clean(&self, cx: &DocContext) -> Generics {
use self::WherePredicate as WP;

View file

@ -156,8 +156,8 @@ fn trait_is_same_or_supertrait(cx: &DocContext, child: DefId,
if child == trait_ {
return true
}
let predicates = cx.tcx.super_predicates_of(child).predicates;
predicates.iter().filter_map(|(pred, _)| {
let predicates = cx.tcx.super_predicates_of(child);
predicates.predicates.iter().filter_map(|(pred, _)| {
if let ty::Predicate::Trait(ref pred) = *pred {
if pred.skip_binder().trait_ref.self_ty().is_self() {
Some(pred.def_id())