pub fn evaluate_impl(&mut self,
                         impl_def_id: ast::DefId,
                         obligation: &Obligation<'tcx>)
                         -> bool
    {
        debug!("evaluate_impl(impl_def_id={}, obligation={})",
               impl_def_id.repr(self.tcx()),
               obligation.repr(self.tcx()));

        self.infcx.probe(|| {
            match self.match_impl(impl_def_id, obligation) {
                Ok(substs) => {
                    let vtable_impl = self.vtable_impl(impl_def_id,
                                                       substs,
                                                       obligation.cause,
                                                       obligation.recursion_depth + 1);
                    self.winnow_selection(None, VtableImpl(vtable_impl)).may_apply()
                }
                Err(()) => {
                    false
                }
            }
        })
    }
/// Evaluates whether the impl with id `impl_def_id` could be applied to the self type
/// `obligation_self_ty`. This can be used either for trait or inherent impls.
Evaluates whether the impl with id `impl_def_id` could be applied to the self type
`obligation_self_ty`. This can be used either for trait or inherent impls.
Evaluates whether the impl with id ` impl_def_id ` could be applied to the self type ` obligation_self_ty ` . This can be used either for trait or inherent impls .
pub fn evaluate_impl(&mut self,
                         impl_def_id: ast::DefId,
                         obligation: &Obligation<'tcx>)
                         -> bool
    {
        debug!("evaluate_impl(impl_def_id={}, obligation={})",
               impl_def_id.repr(self.tcx()),
               obligation.repr(self.tcx()));
        self.infcx.probe(|| {
            match self.match_impl(impl_def_id, obligation) {
                Ok(substs) => {
                    let vtable_impl = self.vtable_impl(impl_def_id,
                                                       substs,
                                                       obligation.cause,
                                                       obligation.recursion_depth + 1);
                    self.winnow_selection(None, VtableImpl(vtable_impl)).may_apply()
                }
                Err(()) => {
                    false
                }
            }
        })
    }
pub fn evaluate_impl ( & mut self , impl_def_id : ast :: DefId , obligation : & Obligation < ' tcx > ) -> bool { debug ! ( " " impl_def_id repr ( self tcx ( ) ) obligation repr ( self tcx ( ) ) ) ; self . infcx . probe ( | | { match self . match_impl ( impl_def_id , obligation ) { Ok ( substs ) => { let vtable_impl = self . vtable_impl ( impl_def_id , substs , obligation . cause , obligation . recursion_depth + 1 ) ; self . winnow_selection ( None , VtableImpl ( vtable_impl ) ) . may_apply ( ) } Err ( ( ) ) => { false } } } ) }
Evaluates whether the impl with id `impl_def_id` could be applied to the self type
`obligation_self_ty`.
Evaluates whether the impl with id ` impl_def_id ` could be applied to the self type ` obligation_self_ty ` .
&mut self
impl_def_id
ast::DefId
obligation
&Obligation<'tcx>