fn check_inferred_clauses<'tcx>(
tcx: TyCtxt<'tcx>,
def_id: DefId,
args: GenericArgsRef<'tcx>,
global_inferred_outlives: &FxIndexMap<DefId, EarlyBinder<'tcx, FxIndexMap<ArgOutlivesClause<'tcx>, Span>>>,
required_clauses: &mut FxIndexMap<ArgOutlivesClause<'tcx>, Span>,
)Expand description
Check the inferred clauses of the type.
§Example
ⓘ
struct Outer<'a, T> {
outer: Inner<'a, T>,
}
struct Inner<'b, U> {
inner: &'b U,
}Here, when processing the type of field outer, we would request the
set of implicit clauses computed for Inner thus far. This will
initially come back empty, but in next round we will get U: 'b.
We then apply the instantiation ['b => 'a, U => T] and thus get the
requirement that T: 'a holds for Outer.