fn borrow_or_assign<'tcx>(
    cx: &LateContext<'tcx>,
    e: &'tcx Expr<'tcx>
) -> Option<(&'tcx Expr<'tcx>, PatternKind)>