summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTunahan Karlibas <dvt.tnhn.krlbs@gmail.com>2020-12-11 18:19:30 +0300
committerTunahan Karlibas <dvt.tnhn.krlbs@gmail.com>2020-12-11 18:59:29 +0300
commita03feaae550b17d53ed5edd137ffaeaa530cae92 (patch)
tree70d6f1ca8582f331fc0af4be57e5fca18a31165c
parentb6f7eef946d4b9830bef2a4264c4b62f880f032b (diff)
downloadrust-a03feaae550b17d53ed5edd137ffaeaa530cae92.tar.gz
add missing constraints
-rw-r--r--compiler/rustc_mir/src/const_eval/eval_queries.rs16
1 files changed, 10 insertions, 6 deletions
diff --git a/compiler/rustc_mir/src/const_eval/eval_queries.rs b/compiler/rustc_mir/src/const_eval/eval_queries.rs
index 058a5ced2ab..f13b4b7b919 100644
--- a/compiler/rustc_mir/src/const_eval/eval_queries.rs
+++ b/compiler/rustc_mir/src/const_eval/eval_queries.rs
@@ -7,7 +7,7 @@ use crate::interpret::{
};
use rustc_errors::ErrorReported;
-use rustc_hir::{ConstContext, def::DefKind};
+use rustc_hir::def::DefKind;
use rustc_middle::mir;
use rustc_middle::mir::interpret::ErrorHandled;
use rustc_middle::traits::Reveal;
@@ -34,9 +34,15 @@ fn eval_body_using_ecx<'mir, 'tcx>(
assert!(
cid.promoted.is_some()
|| matches!(
- ecx.tcx.hir().body_const_context(cid.instance.def_id().expect_local()),
- Some(ConstContext::Const | ConstContext::Static(_))
- )
+ ecx.tcx.def_kind(cid.instance.def_id()),
+ DefKind::Const
+ | DefKind::Static
+ | DefKind::ConstParam
+ | DefKind::AnonConst
+ | DefKind::AssocConst
+ ),
+ "Unexpected DefKind: {:?}",
+ ecx.tcx.def_kind(cid.instance.def_id())
);
let layout = ecx.layout_of(body.return_ty().subst(tcx, cid.instance.substs))?;
assert!(!layout.is_unsized());
@@ -47,8 +53,6 @@ fn eval_body_using_ecx<'mir, 'tcx>(
let prom = cid.promoted.map_or(String::new(), |p| format!("::promoted[{:?}]", p));
trace!("eval_body_using_ecx: pushing stack frame for global: {}{}", name, prom);
-
-
ecx.push_stack_frame(
cid.instance,
body,