fn winnow_candidate<'o>(&mut self,
                            stack: &ObligationStack<'o, 'tcx>,
                            candidate: &Candidate<'tcx>)
                            -> EvaluationResult<'tcx>
    {
        debug!("winnow_candidate: candidate={}", candidate.repr(self.tcx()));
        self.infcx.probe(|| {
            let candidate = (*candidate).clone();
            match self.confirm_candidate(stack.obligation, candidate) {
                Ok(selection) => self.winnow_selection(Some(stack), selection),
                Err(error) => EvaluatedToErr(error),
            }
        })
    }
/// Further evaluate `candidate` to decide whether all type parameters match and whether nested
/// obligations are met. Returns true if `candidate` remains viable after this further
/// scrutiny.
Further evaluate `candidate` to decide whether all type parameters match and whether nested
obligations are met. Returns true if `candidate` remains viable after this further
scrutiny.
Further evaluate ` candidate ` to decide whether all type parameters match and whether nested obligations are met . Returns true if ` candidate ` remains viable after this further scrutiny .
fn winnow_candidate<'o>(&mut self,
                            stack: &ObligationStack<'o, 'tcx>,
                            candidate: &Candidate<'tcx>)
                            -> EvaluationResult<'tcx>
    {
        debug!("winnow_candidate: candidate={}", candidate.repr(self.tcx()));
        self.infcx.probe(|| {
            let candidate = (*candidate).clone();
            match self.confirm_candidate(stack.obligation, candidate) {
                Ok(selection) => self.winnow_selection(Some(stack), selection),
                Err(error) => EvaluatedToErr(error),
            }
        })
    }
fn winnow_candidate < ' o > ( & mut self , stack : & ObligationStack < ' o , ' tcx > , candidate : & Candidate < ' tcx > ) -> EvaluationResult < ' tcx > { debug ! ( " " candidate repr ( self tcx ( ) ) ) ; self . infcx . probe ( | | { let candidate = ( * candidate ) . clone ( ) ; match self . confirm_candidate ( stack . obligation , candidate ) { Ok ( selection ) => self . winnow_selection ( Some ( stack ) , selection ) , Err ( error ) => EvaluatedToErr ( error ) , } } ) }
Further evaluate `candidate` to decide whether all type parameters match and whether nested
obligations are met.
Further evaluate ` candidate ` to decide whether all type parameters match and whether nested obligations are met .
&mut self
stack
&ObligationStack<'o, 'tcx>
candidate
&Candidate<'tcx>