move generics_of call outside of iter · rust-lang/rust@ed8e436

Original file line numberDiff line numberDiff line change

@@ -1998,6 +1998,8 @@ impl ExplicitOutlivesRequirements {

19981998

) -> Vec<(usize, Span)> {

19991999

use rustc_middle::middle::resolve_bound_vars::ResolvedArg;

20002000
2001+

let item_generics = tcx.generics_of(item);

2002+
20012003

bounds

20022004

.iter()

20032005

.enumerate()

@@ -2009,7 +2011,7 @@ impl ExplicitOutlivesRequirements {

20092011

let is_inferred = match tcx.named_bound_var(lifetime.hir_id) {

20102012

Some(ResolvedArg::EarlyBound(def_id)) => inferred_outlives

20112013

.iter()

2012-

.any(|r| matches!(**r, ty::ReEarlyParam(ebr) if { tcx.generics_of(item).region_param(ebr, tcx).def_id == def_id })),

2014+

.any(|r| matches!(**r, ty::ReEarlyParam(ebr) if { item_generics.region_param(ebr, tcx).def_id == def_id })),

20132015

_ => false,

20142016

};

20152017