diff options
Diffstat (limited to 'src/librustc_passes/consts.rs')
-rw-r--r-- | src/librustc_passes/consts.rs | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/librustc_passes/consts.rs b/src/librustc_passes/consts.rs index 6be7f6c2002..c964179d407 100644 --- a/src/librustc_passes/consts.rs +++ b/src/librustc_passes/consts.rs @@ -610,9 +610,8 @@ fn check_expr<'a, 'tcx>(v: &mut CheckCrateVisitor<'a, 'tcx>, } Some(Def::Const(did)) | Some(Def::AssociatedConst(did)) => { - if let Some((expr, _ty)) = const_eval::lookup_const_by_id(v.tcx, did, - Some(e.id), - None) { + let substs = Some(v.tcx.node_id_item_substs(e.id).substs); + if let Some((expr, _)) = const_eval::lookup_const_by_id(v.tcx, did, substs) { let inner = v.global_expr(Mode::Const, expr); v.add_qualif(inner); } @@ -756,7 +755,7 @@ fn check_expr<'a, 'tcx>(v: &mut CheckCrateVisitor<'a, 'tcx>, // Expressions with side-effects. hir::ExprAssign(..) | hir::ExprAssignOp(..) | - hir::ExprInlineAsm(_) => { + hir::ExprInlineAsm(..) => { v.add_qualif(ConstQualif::NOT_CONST); if v.mode != Mode::Var { span_err!(v.tcx.sess, e.span, E0019, |