@@ -95,7 +95,7 @@ impl<'tcx> NonConstOp<'tcx> for FnCallNonConst<'tcx> {
95
95
let FnCallNonConst { caller, callee, substs, span, from_hir_call } = * self ;
96
96
let ConstCx { tcx, param_env, .. } = * ccx;
97
97
98
- let diag_trait = |mut err, self_ty : Ty < ' _ > , trait_id| {
98
+ let diag_trait = |err, self_ty : Ty < ' _ > , trait_id| {
99
99
let trait_ref = TraitRef :: from_method ( tcx, trait_id, substs) ;
100
100
101
101
match self_ty. kind ( ) {
@@ -115,7 +115,7 @@ impl<'tcx> NonConstOp<'tcx> for FnCallNonConst<'tcx> {
115
115
suggest_constraining_type_param (
116
116
tcx,
117
117
generics,
118
- & mut err,
118
+ err,
119
119
& param_ty. name . as_str ( ) ,
120
120
& constraint,
121
121
None ,
@@ -146,8 +146,6 @@ impl<'tcx> NonConstOp<'tcx> for FnCallNonConst<'tcx> {
146
146
}
147
147
_ => { }
148
148
}
149
-
150
- err
151
149
} ;
152
150
153
151
let call_kind = call_kind ( tcx, ccx. param_env , callee, substs, span, from_hir_call, None ) ;
@@ -162,7 +160,7 @@ impl<'tcx> NonConstOp<'tcx> for FnCallNonConst<'tcx> {
162
160
} ;
163
161
}
164
162
165
- let err = match kind {
163
+ let mut err = match kind {
166
164
CallDesugaringKind :: ForLoopIntoIter => {
167
165
error ! ( "cannot convert `{}` into an iterator in {}s" )
168
166
}
@@ -177,7 +175,8 @@ impl<'tcx> NonConstOp<'tcx> for FnCallNonConst<'tcx> {
177
175
}
178
176
} ;
179
177
180
- diag_trait ( err, self_ty, kind. trait_def_id ( tcx) )
178
+ diag_trait ( & mut err, self_ty, kind. trait_def_id ( tcx) ) ;
179
+ err
181
180
}
182
181
CallKind :: FnCall { fn_trait_id, self_ty } => {
183
182
let mut err = struct_span_err ! (
@@ -212,7 +211,8 @@ impl<'tcx> NonConstOp<'tcx> for FnCallNonConst<'tcx> {
212
211
_ => { }
213
212
}
214
213
215
- diag_trait ( err, self_ty, fn_trait_id)
214
+ diag_trait ( & mut err, self_ty, fn_trait_id) ;
215
+ err
216
216
}
217
217
CallKind :: Operator { trait_id, self_ty, .. } => {
218
218
let mut err = struct_span_err ! (
@@ -262,7 +262,8 @@ impl<'tcx> NonConstOp<'tcx> for FnCallNonConst<'tcx> {
262
262
}
263
263
}
264
264
265
- diag_trait ( err, self_ty, trait_id)
265
+ diag_trait ( & mut err, self_ty, trait_id) ;
266
+ err
266
267
}
267
268
CallKind :: DerefCoercion { deref_target, deref_target_ty, self_ty } => {
268
269
let mut err = struct_span_err ! (
@@ -281,7 +282,8 @@ impl<'tcx> NonConstOp<'tcx> for FnCallNonConst<'tcx> {
281
282
err. span_note ( deref_target, "deref defined here" ) ;
282
283
}
283
284
284
- diag_trait ( err, self_ty, tcx. lang_items ( ) . deref_trait ( ) . unwrap ( ) )
285
+ diag_trait ( & mut err, self_ty, tcx. lang_items ( ) . deref_trait ( ) . unwrap ( ) ) ;
286
+ err
285
287
}
286
288
_ => struct_span_err ! (
287
289
ccx. tcx. sess,
0 commit comments