diff options
| author | Tunahan Karlibas <dvt.tnhn.krlbs@gmail.com> | 2020-12-09 14:53:35 +0300 |
|---|---|---|
| committer | Tunahan Karlibas <dvt.tnhn.krlbs@gmail.com> | 2020-12-09 14:53:35 +0300 |
| commit | de1cd4b36d57b33f4217a46c0c52fbe1eb4530a1 (patch) | |
| tree | 333e638096048a184e570255d08fcf0aa7280a13 /compiler/rustc_mir/src/const_eval | |
| parent | 7cb74ed1917cc982830d6b7b7bac7e8a7f4d271c (diff) | |
| download | rust-de1cd4b36d57b33f4217a46c0c52fbe1eb4530a1.tar.gz rust-de1cd4b36d57b33f4217a46c0c52fbe1eb4530a1.zip | |
Extra assertions in eval_body_using_ecx to disallow queries for
functions that does allocations
Diffstat (limited to 'compiler/rustc_mir/src/const_eval')
| -rw-r--r-- | compiler/rustc_mir/src/const_eval/eval_queries.rs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/compiler/rustc_mir/src/const_eval/eval_queries.rs b/compiler/rustc_mir/src/const_eval/eval_queries.rs index 6e09ae43406..4d14e45c2e9 100644 --- a/compiler/rustc_mir/src/const_eval/eval_queries.rs +++ b/compiler/rustc_mir/src/const_eval/eval_queries.rs @@ -30,6 +30,13 @@ fn eval_body_using_ecx<'mir, 'tcx>( body: &'mir mir::Body<'tcx>, ) -> InterpResult<'tcx, MPlaceTy<'tcx>> { debug!("eval_body_using_ecx: {:?}, {:?}", cid, ecx.param_env); + assert!( + cid.promoted.is_some() + || matches!( + ecx.tcx.hir().body_const_context(def_id), + Some(ConstContext::Const | ConstContext::Static(_)) + ) + ); let tcx = *ecx.tcx; let layout = ecx.layout_of(body.return_ty().subst(tcx, cid.instance.substs))?; assert!(!layout.is_unsized()); |
