Do not repeat idx
This commit is contained in:
@@ -1156,14 +1156,15 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
||||
// ```
|
||||
// which includes the replacement of the first two `()` for the correct type, and the
|
||||
// removal of the last `()`.
|
||||
let mut prev = -1;
|
||||
let mut idx = -1;
|
||||
for (expected_idx, provided_idx) in matched_inputs.iter_enumerated() {
|
||||
// We want to point not at the *current* argument expression index, but rather at the
|
||||
// index position where it *should have been*, which is *after* the previous one.
|
||||
if let Some(provided_idx) = provided_idx {
|
||||
prev = provided_idx.index() as i64;
|
||||
}
|
||||
let idx = ProvidedIdx::from_usize((prev + 1) as usize);
|
||||
idx = match provided_idx {
|
||||
Some(provided_idx) => provided_idx.index() as i64 + 1,
|
||||
None => idx + 1,
|
||||
};
|
||||
let idx = ProvidedIdx::from_usize(idx as usize);
|
||||
if let None = provided_idx
|
||||
&& let Some((_, arg_span)) = provided_arg_tys.get(idx)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user