]> git.lizzy.rs Git - rust.git/commitdiff
add missing constraints
authorTunahan Karlibas <dvt.tnhn.krlbs@gmail.com>
Fri, 11 Dec 2020 15:19:30 +0000 (18:19 +0300)
committerTunahan Karlibas <dvt.tnhn.krlbs@gmail.com>
Fri, 11 Dec 2020 15:59:29 +0000 (18:59 +0300)
compiler/rustc_mir/src/const_eval/eval_queries.rs

index 058a5ced2abd34a4946a32454ceb2742fa44922b..f13b4b7b919247893983addd97075617152494e4 100644 (file)
@@ -7,7 +7,7 @@
 };
 
 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,