]> git.lizzy.rs Git - rust.git/commitdiff
typeck/pat.rs: simplify `check_pat_walk`.
authorMazdak Farrokhzad <twingoow@gmail.com>
Sat, 24 Aug 2019 03:13:57 +0000 (05:13 +0200)
committerMazdak Farrokhzad <twingoow@gmail.com>
Sat, 24 Aug 2019 17:15:47 +0000 (19:15 +0200)
src/librustc_typeck/check/pat.rs

index 7b78474e79979b6517fac80b9ab5704a37a4616f..c08d777c34e3e06f1b3886f560007c41bbf21804 100644 (file)
@@ -61,57 +61,53 @@ pub fn check_pat_walk(
         let is_nrp = self.is_non_ref_pat(pat, path_resolution.map(|(res, ..)| res));
         let (expected, def_bm) = self.calc_default_binding_mode(pat, expected, def_bm, is_nrp);
 
-        let ty = match pat.node {
-            PatKind::Wild => {
-                expected
-            }
-            PatKind::Lit(ref lt) => {
-                self.check_pat_lit(pat.span, lt, expected, discrim_span)
-            }
-            PatKind::Range(ref begin, ref end, _) => {
+        let ty = match &pat.node {
+            PatKind::Wild => expected,
+            PatKind::Lit(lt) => self.check_pat_lit(pat.span, lt, expected, discrim_span),
+            PatKind::Range(begin, end, _) => {
                 match self.check_pat_range(pat.span, begin, end, expected, discrim_span) {
                     None => return,
                     Some(ty) => ty,
                 }
             }
-            PatKind::Binding(ba, var_id, _, ref sub) => {
+            PatKind::Binding(ba, var_id, _, sub) => {
                 let sub = sub.as_deref();
-                self.check_pat_ident(pat, ba, var_id, sub, expected, def_bm, discrim_span)
+                self.check_pat_ident(pat, *ba, *var_id, sub, expected, def_bm, discrim_span)
             }
-            PatKind::TupleStruct(ref qpath, ref subpats, ddpos) => {
+            PatKind::TupleStruct(qpath, subpats, ddpos) => {
                 self.check_pat_tuple_struct(
                     pat,
                     qpath,
-                    &subpats,
-                    ddpos,
+                    subpats,
+                    *ddpos,
                     expected,
                     def_bm,
                     discrim_span,
                 )
             }
-            PatKind::Path(ref qpath) => {
+            PatKind::Path(qpath) => {
                 self.check_pat_path(pat, path_resolution.unwrap(), qpath, expected)
             }
-            PatKind::Struct(ref qpath, ref fields, etc) => {
-                self.check_pat_struct(pat, qpath, fields, etc, expected, def_bm, discrim_span)
+            PatKind::Struct(qpath, fields, etc) => {
+                self.check_pat_struct(pat, qpath, fields, *etc, expected, def_bm, discrim_span)
             }
-            PatKind::Or(ref pats) => {
+            PatKind::Or(pats) => {
                 let expected_ty = self.structurally_resolved_type(pat.span, expected);
                 for pat in pats {
                     self.check_pat_walk(pat, expected, def_bm, discrim_span);
                 }
                 expected_ty
             }
-            PatKind::Tuple(ref elements, ddpos) => {
-                self.check_pat_tuple(pat.span, elements, ddpos, expected, def_bm, discrim_span)
+            PatKind::Tuple(elements, ddpos) => {
+                self.check_pat_tuple(pat.span, elements, *ddpos, expected, def_bm, discrim_span)
             }
-            PatKind::Box(ref inner) => {
+            PatKind::Box(inner) => {
                 self.check_pat_box(pat.span, inner, expected, def_bm, discrim_span)
             }
-            PatKind::Ref(ref inner, mutbl) => {
-                self.check_pat_ref(pat, inner, mutbl, expected, def_bm, discrim_span)
+            PatKind::Ref(inner, mutbl) => {
+                self.check_pat_ref(pat, inner, *mutbl, expected, def_bm, discrim_span)
             }
-            PatKind::Slice(ref before, ref slice, ref after) => {
+            PatKind::Slice(before, slice, after) => {
                 let slice = slice.as_deref();
                 self.check_pat_slice(pat.span, before, slice, after, expected, def_bm, discrim_span)
             }