summaryrefslogtreecommitdiff
path: root/src/librustc_passes/consts.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/librustc_passes/consts.rs')
-rw-r--r--src/librustc_passes/consts.rs7
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,