From a48bd1718356cdcc4204b57ed282ff8111df5427 Mon Sep 17 00:00:00 2001 From: Oliver Schneider Date: Thu, 3 Mar 2016 14:46:20 +0100 Subject: [PATCH] prefer the (associated) const's type over the type hint --- src/librustc/middle/const_eval.rs | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/librustc/middle/const_eval.rs b/src/librustc/middle/const_eval.rs index f56c42738e7..c02782b859c 100644 --- a/src/librustc/middle/const_eval.rs +++ b/src/librustc/middle/const_eval.rs @@ -854,16 +854,12 @@ pub fn eval_const_expr_partial<'tcx>(tcx: &TyCtxt<'tcx>, Some(actual_e) => actual_e, None => signal!(e, NonConstPath) }; - let item_hint = if let UncheckedExprNoHint = ty_hint { - match const_ty { - Some(ty) => match ast_ty_to_prim_ty(tcx, ty) { - Some(ty) => UncheckedExprHint(ty), - None => UncheckedExprNoHint - }, - None => UncheckedExprNoHint - } - } else { - ty_hint + let item_hint = match const_ty { + Some(ty) => match ast_ty_to_prim_ty(tcx, ty) { + Some(ty) => ty_hint.checked_or(ty), + None => ty_hint.erase_hint(), + }, + None => ty_hint.erase_hint(), }; try!(eval_const_expr_partial(tcx, const_expr, item_hint, fn_args)) }