diff options
author | Tunahan Karlibas <dvt.tnhn.krlbs@gmail.com> | 2020-12-11 18:19:30 +0300 |
---|---|---|
committer | Tunahan Karlibas <dvt.tnhn.krlbs@gmail.com> | 2020-12-11 18:59:29 +0300 |
commit | a03feaae550b17d53ed5edd137ffaeaa530cae92 (patch) | |
tree | 70d6f1ca8582f331fc0af4be57e5fca18a31165c | |
parent | b6f7eef946d4b9830bef2a4264c4b62f880f032b (diff) | |
download | rust-a03feaae550b17d53ed5edd137ffaeaa530cae92.tar.gz |
add missing constraints
-rw-r--r-- | compiler/rustc_mir/src/const_eval/eval_queries.rs | 16 |
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, |