@@ -61,57 +61,53 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
61
61
let is_nrp = self . is_non_ref_pat ( pat, path_resolution. map ( |( res, ..) | res) ) ;
62
62
let ( expected, def_bm) = self . calc_default_binding_mode ( pat, expected, def_bm, is_nrp) ;
63
63
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, _) => {
72
68
match self . check_pat_range ( pat. span , begin, end, expected, discrim_span) {
73
69
None => return ,
74
70
Some ( ty) => ty,
75
71
}
76
72
}
77
- PatKind :: Binding ( ba, var_id, _, ref sub) => {
73
+ PatKind :: Binding ( ba, var_id, _, sub) => {
78
74
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)
80
76
}
81
- PatKind :: TupleStruct ( ref qpath, ref subpats, ddpos) => {
77
+ PatKind :: TupleStruct ( qpath, subpats, ddpos) => {
82
78
self . check_pat_tuple_struct (
83
79
pat,
84
80
qpath,
85
- & subpats,
86
- ddpos,
81
+ subpats,
82
+ * ddpos,
87
83
expected,
88
84
def_bm,
89
85
discrim_span,
90
86
)
91
87
}
92
- PatKind :: Path ( ref qpath) => {
88
+ PatKind :: Path ( qpath) => {
93
89
self . check_pat_path ( pat, path_resolution. unwrap ( ) , qpath, expected)
94
90
}
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)
97
93
}
98
- PatKind :: Or ( ref pats) => {
94
+ PatKind :: Or ( pats) => {
99
95
let expected_ty = self . structurally_resolved_type ( pat. span , expected) ;
100
96
for pat in pats {
101
97
self . check_pat_walk ( pat, expected, def_bm, discrim_span) ;
102
98
}
103
99
expected_ty
104
100
}
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)
107
103
}
108
- PatKind :: Box ( ref inner) => {
104
+ PatKind :: Box ( inner) => {
109
105
self . check_pat_box ( pat. span , inner, expected, def_bm, discrim_span)
110
106
}
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)
113
109
}
114
- PatKind :: Slice ( ref before, ref slice, ref after) => {
110
+ PatKind :: Slice ( before, slice, after) => {
115
111
let slice = slice. as_deref ( ) ;
116
112
self . check_pat_slice ( pat. span , before, slice, after, expected, def_bm, discrim_span)
117
113
}
0 commit comments