fn relate_item_substs<'a, 'gcx, 'tcx, R>(relation: &mut R,
                                         item_def_id: DefId,
                                         a_subst: &'tcx Substs<'tcx>,
                                         b_subst: &'tcx Substs<'tcx>)
                                         -> RelateResult<'tcx, &'tcx Substs<'tcx>>
    where R: TypeRelation<'a, 'gcx, 'tcx>, 'gcx: 'a+'tcx, 'tcx: 'a
{
    debug!("substs: item_def_id={:?} a_subst={:?} b_subst={:?}",
           item_def_id,
           a_subst,
           b_subst);

    let variances;
    let opt_variances = if relation.tcx().variance_computed.get() {
        variances = relation.tcx().item_variances(item_def_id);
        Some(&*variances)
    } else {
        None
    };
    relate_substs(relation, opt_variances, a_subst, b_subst)
}
// substitutions are not themselves relatable without more context,
// but they is an important subroutine for things that ARE relatable,
// like traits etc.
substitutions are not themselves relatable without more context,
but they is an important subroutine for things that ARE relatable,
like traits etc.
substitutions are not themselves relatable without more context but they is an important subroutine for things that ARE relatable like traits etc .
fn relate_item_substs<'a, 'gcx, 'tcx, R>(relation: &mut R,
                                         item_def_id: DefId,
                                         a_subst: &'tcx Substs<'tcx>,
                                         b_subst: &'tcx Substs<'tcx>)
                                         -> RelateResult<'tcx, &'tcx Substs<'tcx>>
    where R: TypeRelation<'a, 'gcx, 'tcx>, 'gcx: 'a+'tcx, 'tcx: 'a
{
    debug!("substs: item_def_id={:?} a_subst={:?} b_subst={:?}",
           item_def_id,
           a_subst,
           b_subst);
    let variances;
    let opt_variances = if relation.tcx().variance_computed.get() {
        variances = relation.tcx().item_variances(item_def_id);
        Some(&*variances)
    } else {
        None
    };
    relate_substs(relation, opt_variances, a_subst, b_subst)
}
fn relate_item_substs < ' a , ' gcx , ' tcx , R > ( relation : & mut R , item_def_id : DefId , a_subst : & ' tcx Substs < ' tcx > , b_subst : & ' tcx Substs < ' tcx > ) -> RelateResult < ' tcx , & ' tcx Substs < ' tcx > > where R : TypeRelation < ' a , ' gcx , ' tcx > , ' gcx : ' a + ' tcx , ' tcx : ' a { debug ! ( " " item_def_id a_subst b_subst ) ; let variances ; let opt_variances = if relation . tcx ( ) . variance_computed . get ( ) { variances = relation . tcx ( ) . item_variances ( item_def_id ) ; Some ( & * variances ) } else { None } ; relate_substs ( relation , opt_variances , a_subst , b_subst ) }
substitutions are not themselves relatable without more context,
but they is an important subroutine for things that ARE relatable,
like traits etc.
substitutions are not themselves relatable without more context but they is an important subroutine for things that ARE relatable like traits etc .
relation
&mut R
item_def_id
DefId
a_subst
&'tcx Substs<'tcx>
b_subst
&'tcx Substs<'tcx>
relation
&mut R
item_def_id
DefId
a_subst
&'tcx Substs<'tcx>
b_subst
&'tcx Substs<'tcx>