fn trait_ref_type_vars<'a, 'gcx, 'tcx>(selcx: &mut SelectionContext<'a, 'gcx, 'tcx>,
                                       t: ty::PolyTraitRef<'tcx>) -> Vec<Ty<'tcx>>
{
    t.skip_binder() // ok b/c this check doesn't care about regions
     .input_types()
     .map(|t| selcx.infcx().resolve_type_vars_if_possible(&t))
     .filter(|t| t.has_infer_types())
     .flat_map(|t| t.walk())
     .filter(|t| match t.sty { ty::Infer(_) => true, _ => false })
     .collect()
}
/// Return the set of type variables contained in a trait ref
Return the set of type variables contained in a trait ref
Return the set of type variables contained in a trait ref
fn trait_ref_type_vars<'a, 'gcx, 'tcx>(selcx: &mut SelectionContext<'a, 'gcx, 'tcx>,
                                       t: ty::PolyTraitRef<'tcx>) -> Vec<Ty<'tcx>>
{
    t.skip_binder() // ok b/c this check doesn't care about regions
     .input_types()
     .map(|t| selcx.infcx().resolve_type_vars_if_possible(&t))
     .filter(|t| t.has_infer_types())
     .flat_map(|t| t.walk())
     .filter(|t| match t.sty { ty::Infer(_) => true, _ => false })
     .collect()
}
fn trait_ref_type_vars < ' a , ' gcx , ' tcx > ( selcx : & mut SelectionContext < ' a , ' gcx , ' tcx > , t : ty :: PolyTraitRef < ' tcx > ) -> Vec < Ty < ' tcx > > { t . skip_binder ( ) // ok b/c this check doesn't care about regions . input_types ( ) . map ( | t | selcx . infcx ( ) . resolve_type_vars_if_possible ( & t ) ) . filter ( | t | t . has_infer_types ( ) ) . flat_map ( | t | t . walk ( ) ) . filter ( | t | match t . sty { ty :: Infer ( _ ) => true , _ => false } ) . collect ( ) }
Return the set of type variables contained in a trait ref
Return the set of type variables contained in a trait ref
selcx
&mut SelectionContext<'a, 'gcx, 'tcx>
t
ty::PolyTraitRef<'tcx>
selcx
&mut SelectionContext<'a, 'gcx, 'tcx>
t
ty::PolyTraitRef<'tcx>