@@ -61,57 +61,53 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
6161 let is_nrp = self . is_non_ref_pat ( pat, path_resolution. map ( |( res, ..) | res) ) ;
6262 let ( expected, def_bm) = self . calc_default_binding_mode ( pat, expected, def_bm, is_nrp) ;
6363
64- let ty = match pat. node {
65- PatKind :: Wild => {
66- expected
67- }
68- PatKind :: Lit ( ref lt) => {
69- self . check_pat_lit ( pat. span , lt, expected, discrim_span)
70- }
71- PatKind :: Range ( ref begin, ref end, _) => {
64+ let ty = match & pat. node {
65+ PatKind :: Wild => expected,
66+ PatKind :: Lit ( lt) => self . check_pat_lit ( pat. span , lt, expected, discrim_span) ,
67+ PatKind :: Range ( begin, end, _) => {
7268 match self . check_pat_range ( pat. span , begin, end, expected, discrim_span) {
7369 None => return ,
7470 Some ( ty) => ty,
7571 }
7672 }
77- PatKind :: Binding ( ba, var_id, _, ref sub) => {
73+ PatKind :: Binding ( ba, var_id, _, sub) => {
7874 let sub = sub. as_deref ( ) ;
79- self . check_pat_ident ( pat, ba, var_id, sub, expected, def_bm, discrim_span)
75+ self . check_pat_ident ( pat, * ba, * var_id, sub, expected, def_bm, discrim_span)
8076 }
81- PatKind :: TupleStruct ( ref qpath, ref subpats, ddpos) => {
77+ PatKind :: TupleStruct ( qpath, subpats, ddpos) => {
8278 self . check_pat_tuple_struct (
8379 pat,
8480 qpath,
85- & subpats,
86- ddpos,
81+ subpats,
82+ * ddpos,
8783 expected,
8884 def_bm,
8985 discrim_span,
9086 )
9187 }
92- PatKind :: Path ( ref qpath) => {
88+ PatKind :: Path ( qpath) => {
9389 self . check_pat_path ( pat, path_resolution. unwrap ( ) , qpath, expected)
9490 }
95- PatKind :: Struct ( ref qpath, ref fields, etc) => {
96- self . check_pat_struct ( pat, qpath, fields, etc, expected, def_bm, discrim_span)
91+ PatKind :: Struct ( qpath, fields, etc) => {
92+ self . check_pat_struct ( pat, qpath, fields, * etc, expected, def_bm, discrim_span)
9793 }
98- PatKind :: Or ( ref pats) => {
94+ PatKind :: Or ( pats) => {
9995 let expected_ty = self . structurally_resolved_type ( pat. span , expected) ;
10096 for pat in pats {
10197 self . check_pat_walk ( pat, expected, def_bm, discrim_span) ;
10298 }
10399 expected_ty
104100 }
105- PatKind :: Tuple ( ref elements, ddpos) => {
106- self . check_pat_tuple ( pat. span , elements, ddpos, expected, def_bm, discrim_span)
101+ PatKind :: Tuple ( elements, ddpos) => {
102+ self . check_pat_tuple ( pat. span , elements, * ddpos, expected, def_bm, discrim_span)
107103 }
108- PatKind :: Box ( ref inner) => {
104+ PatKind :: Box ( inner) => {
109105 self . check_pat_box ( pat. span , inner, expected, def_bm, discrim_span)
110106 }
111- PatKind :: Ref ( ref inner, mutbl) => {
112- self . check_pat_ref ( pat, inner, mutbl, expected, def_bm, discrim_span)
107+ PatKind :: Ref ( inner, mutbl) => {
108+ self . check_pat_ref ( pat, inner, * mutbl, expected, def_bm, discrim_span)
113109 }
114- PatKind :: Slice ( ref before, ref slice, ref after) => {
110+ PatKind :: Slice ( before, slice, after) => {
115111 let slice = slice. as_deref ( ) ;
116112 self . check_pat_slice ( pat. span , before, slice, after, expected, def_bm, discrim_span)
117113 }
0 commit comments