fn link_autoref(rcx: &Rcx,
                expr: &hir::Expr,
                autoderefs: usize,
                autoref: &ty::AutoRef)
{
    debug!("link_autoref(autoref={:?})", autoref);
    let mc = mc::MemCategorizationContext::new(rcx.fcx.infcx());
    let expr_cmt = ignore_err!(mc.cat_expr_autoderefd(expr, autoderefs));
    debug!("expr_cmt={:?}", expr_cmt);

    match *autoref {
        ty::AutoPtr(r, m) => {
            link_region(rcx, expr.span, r,
                ty::BorrowKind::from_mutbl(m), expr_cmt);
        }

        ty::AutoUnsafe(m) => {
            let r = ty::ReScope(rcx.tcx().region_maps.node_extent(expr.id));
            link_region(rcx, expr.span, &r, ty::BorrowKind::from_mutbl(m), expr_cmt);
        }
    }
}
/// Link lifetime of borrowed pointer resulting from autoref to lifetimes in the value being
/// autoref'd.
Link lifetime of borrowed pointer resulting from autoref to lifetimes in the value being
autoref'd.
Link lifetime of borrowed pointer resulting from autoref to lifetimes in the value being autoref ' d .
fn link_autoref(rcx: &Rcx,
                expr: &hir::Expr,
                autoderefs: usize,
                autoref: &ty::AutoRef)
{
    debug!("link_autoref(autoref={:?})", autoref);
    let mc = mc::MemCategorizationContext::new(rcx.fcx.infcx());
    let expr_cmt = ignore_err!(mc.cat_expr_autoderefd(expr, autoderefs));
    debug!("expr_cmt={:?}", expr_cmt);
    match *autoref {
        ty::AutoPtr(r, m) => {
            link_region(rcx, expr.span, r,
                ty::BorrowKind::from_mutbl(m), expr_cmt);
        }
        ty::AutoUnsafe(m) => {
            let r = ty::ReScope(rcx.tcx().region_maps.node_extent(expr.id));
            link_region(rcx, expr.span, &r, ty::BorrowKind::from_mutbl(m), expr_cmt);
        }
    }
}
fn link_autoref ( rcx : & Rcx , expr : & hir :: Expr , autoderefs : usize , autoref : & ty :: AutoRef ) { debug ! ( " " autoref ) ; let mc = mc :: MemCategorizationContext :: new ( rcx . fcx . infcx ( ) ) ; let expr_cmt = ignore_err ! ( mc cat_expr_autoderefd ( expr autoderefs ) ) ; debug ! ( " " expr_cmt ) ; match * autoref { ty :: AutoPtr ( r , m ) => { link_region ( rcx , expr . span , r , ty :: BorrowKind :: from_mutbl ( m ) , expr_cmt ) ; } ty :: AutoUnsafe ( m ) => { let r = ty :: ReScope ( rcx . tcx ( ) . region_maps . node_extent ( expr . id ) ) ; link_region ( rcx , expr . span , & r , ty :: BorrowKind :: from_mutbl ( m ) , expr_cmt ) ; } } }
Link lifetime of borrowed pointer resulting from autoref to lifetimes in the value being
autoref'd.
Link lifetime of borrowed pointer resulting from autoref to lifetimes in the value being autoref ' d .
rcx
&Rcx
expr
&hir::Expr
autoderefs
usize
autoref
&ty::AutoRef
rcx
&Rcx
expr
&hir::Expr
autoderefs
usize
autoref
&ty::AutoRef