about summary refs log tree commit diff
path: root/src/librustc_codegen_ssa/mir/constant.rs
diff options
context:
space:
mode:
authorBen Lewis <benlewisj@gmail.com>2019-11-30 08:42:56 +1300
committerBen Lewis <benlewisj@gmail.com>2019-12-22 11:15:16 +1300
commitc010d843aacc32ed2bc03d36121aa7f6e08ef045 (patch)
treef7c32850d56e82f8ce0518e865fadff0cd7cbc74 /src/librustc_codegen_ssa/mir/constant.rs
parent6b561b4917e803c4be4ca44d8e552b680cb9e380 (diff)
downloadrust-c010d843aacc32ed2bc03d36121aa7f6e08ef045.tar.gz
rust-c010d843aacc32ed2bc03d36121aa7f6e08ef045.zip
Add simpler entry points to const eval for common usages.
Diffstat (limited to 'src/librustc_codegen_ssa/mir/constant.rs')
-rw-r--r--src/librustc_codegen_ssa/mir/constant.rs19
1 files changed, 8 insertions, 11 deletions
diff --git a/src/librustc_codegen_ssa/mir/constant.rs b/src/librustc_codegen_ssa/mir/constant.rs
index fb8f504d04b..fc17e2c0c71 100644
--- a/src/librustc_codegen_ssa/mir/constant.rs
+++ b/src/librustc_codegen_ssa/mir/constant.rs
@@ -43,17 +43,14 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
         match constant.literal.val {
             ty::ConstKind::Unevaluated(def_id, substs) => {
                 let substs = self.monomorphize(&substs);
-                let instance = ty::Instance::resolve(
-                    self.cx.tcx(), ty::ParamEnv::reveal_all(), def_id, substs,
-                ).unwrap();
-                let cid = mir::interpret::GlobalId {
-                    instance,
-                    promoted: None,
-                };
-                self.cx.tcx().const_eval(ty::ParamEnv::reveal_all().and(cid)).map_err(|err| {
-                    self.cx.tcx().sess.span_err(constant.span, "erroneous constant encountered");
-                    err
-                })
+                self.cx.tcx()
+                    .const_eval_resolve(ty::ParamEnv::reveal_all(), def_id, substs, None)
+                    .map_err(|err| {
+                        self.cx.tcx().sess.span_err(
+                            constant.span,
+                            "erroneous constant encountered");
+                        err
+                    })
             },
             _ => Ok(self.monomorphize(&constant.literal)),
         }