typeck: Index[Mut] traits now have *one* input parameter (not two)

This commit is contained in:
Jorge Aparicio 2014-12-31 21:36:03 -05:00
parent 7d3c5f020e
commit fc343304af

View file

@ -2524,7 +2524,6 @@ fn try_index_step<'a, 'tcx>(fcx: &FnCtxt<'a, 'tcx>,
}
let input_ty = fcx.infcx().next_ty_var();
let return_ty = fcx.infcx().next_ty_var();
// Try `IndexMut` first, if preferred.
let method = match (lvalue_pref, fcx.tcx().lang_items.index_mut_trait()) {
@ -2536,7 +2535,7 @@ fn try_index_step<'a, 'tcx>(fcx: &FnCtxt<'a, 'tcx>,
trait_did,
adjustment.clone(),
adjusted_ty,
Some(vec![input_ty, return_ty]))
Some(vec![input_ty]))
}
_ => None,
};
@ -2551,7 +2550,7 @@ fn try_index_step<'a, 'tcx>(fcx: &FnCtxt<'a, 'tcx>,
trait_did,
adjustment,
adjusted_ty,
Some(vec![input_ty, return_ty]))
Some(vec![input_ty]))
}
(method, _) => method,
};
@ -2559,9 +2558,9 @@ fn try_index_step<'a, 'tcx>(fcx: &FnCtxt<'a, 'tcx>,
// If some lookup succeeds, write callee into table and extract index/element
// type from the method signature.
// If some lookup succeeded, install method in table
method.map(|method| {
make_overloaded_lvalue_return_type(fcx, Some(method_call), Some(method));
(input_ty, return_ty)
method.and_then(|method| {
make_overloaded_lvalue_return_type(fcx, Some(method_call), Some(method)).
map(|ret| (input_ty, ret.ty))
})
}