From: Jorge Aparicio Date: Thu, 1 Jan 2015 02:36:03 +0000 (-0500) Subject: typeck: Index[Mut] traits now have *one* input parameter (not two) X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=fc343304af6ff522b9aa3b143ef6cd4bddd7e7a2;p=rust.git typeck: Index[Mut] traits now have *one* input parameter (not two) --- diff --git a/src/librustc_typeck/check/mod.rs b/src/librustc_typeck/check/mod.rs index 19ec85dc61e..beea3fd4ef2 100644 --- a/src/librustc_typeck/check/mod.rs +++ b/src/librustc_typeck/check/mod.rs @@ -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)) }) }