Skip to content

Commit 862bb38

Browse files
committed
typeck/pat.rs: simplify check_pat_walk.
1 parent f09f1a7 commit 862bb38

File tree

1 file changed

+19
-23
lines changed
  • src/librustc_typeck/check

1 file changed

+19
-23
lines changed

src/librustc_typeck/check/pat.rs

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)