pub fn lookup<'a, 'tcx>(fcx: &FnCtxt<'a, 'tcx>,
                        span: Span,
                        method_name: ast::Name,
                        self_ty: Ty<'tcx>,
                        supplied_method_types: Vec<Ty<'tcx>>,
                        call_expr: &ast::Expr,
                        self_expr: &ast::Expr)
                        -> Result<MethodCallee<'tcx>, MethodError>
{
    debug!("lookup(method_name={}, self_ty={}, call_expr={}, self_expr={})",
           method_name.repr(fcx.tcx()),
           self_ty.repr(fcx.tcx()),
           call_expr.repr(fcx.tcx()),
           self_expr.repr(fcx.tcx()));

    let self_ty = fcx.infcx().resolve_type_vars_if_possible(self_ty);
    let pick = try!(probe::probe(fcx, span, method_name, self_ty, call_expr.id));
    Ok(confirm::confirm(fcx, span, self_expr, call_expr, self_ty, pick, supplied_method_types))
}
/// Performs method lookup. If lookup is successful, it will return the callee and store an
/// appropriate adjustment for the self-expr. In some cases it may report an error (e.g., invoking
/// the `drop` method).
///
/// # Arguments
///
/// Given a method call like `foo.bar::<T1,...Tn>(...)`:
///
/// * `fcx`:                   the surrounding `FnCtxt` (!)
/// * `span`:                  the span for the method call
/// * `method_name`:           the name of the method being called (`bar`)
/// * `self_ty`:               the (unadjusted) type of the self expression (`foo`)
/// * `supplied_method_types`: the explicit method type parameters, if any (`T1..Tn`)
/// * `self_expr`:             the self expression (`foo`)
Performs method lookup. If lookup is successful, it will return the callee and store an
appropriate adjustment for the self-expr. In some cases it may report an error .
Performs method lookup . If lookup is successful it will return the callee and store an appropriate adjustment for the self - expr . In some cases it may report an error .
pub fn lookup<'a, 'tcx>(fcx: &FnCtxt<'a, 'tcx>,
                        span: Span,
                        method_name: ast::Name,
                        self_ty: Ty<'tcx>,
                        supplied_method_types: Vec<Ty<'tcx>>,
                        call_expr: &ast::Expr,
                        self_expr: &ast::Expr)
                        -> Result<MethodCallee<'tcx>, MethodError>
{
    debug!("lookup(method_name={}, self_ty={}, call_expr={}, self_expr={})",
           method_name.repr(fcx.tcx()),
           self_ty.repr(fcx.tcx()),
           call_expr.repr(fcx.tcx()),
           self_expr.repr(fcx.tcx()));
    let self_ty = fcx.infcx().resolve_type_vars_if_possible(self_ty);
    let pick = try!(probe::probe(fcx, span, method_name, self_ty, call_expr.id));
    Ok(confirm::confirm(fcx, span, self_expr, call_expr, self_ty, pick, supplied_method_types))
}
pub fn lookup < ' a , ' tcx > ( fcx : & FnCtxt < ' a , ' tcx > , span : Span , method_name : ast :: Name , self_ty : Ty < ' tcx > , supplied_method_types : Vec < Ty < ' tcx > > , call_expr : & ast :: Expr , self_expr : & ast :: Expr ) -> Result < MethodCallee < ' tcx > , MethodError > { debug ! ( " " method_name repr ( fcx tcx ( ) ) self_ty repr ( fcx tcx ( ) ) call_expr repr ( fcx tcx ( ) ) self_expr repr ( fcx tcx ( ) ) ) ; let self_ty = fcx . infcx ( ) . resolve_type_vars_if_possible ( self_ty ) ; let pick = try ! ( probe probe ( fcx span method_name self_ty call_expr id ) ) ; Ok ( confirm :: confirm ( fcx , span , self_expr , call_expr , self_ty , pick , supplied_method_types ) ) }
Performs method lookup.
Performs method lookup .
fcx
&FnCtxt<'a, 'tcx>
span
Span
method_name
ast::Name
self_ty
Ty<'tcx>
supplied_method_types
Vec<Ty<'tcx>>
call_expr
&ast::Expr
self_expr
&ast::Expr