diff options
| author | Ben Lewis <benlewisj@gmail.com> | 2019-11-30 08:42:56 +1300 |
|---|---|---|
| committer | Ben Lewis <benlewisj@gmail.com> | 2019-12-22 11:15:16 +1300 |
| commit | c010d843aacc32ed2bc03d36121aa7f6e08ef045 (patch) | |
| tree | f7c32850d56e82f8ce0518e865fadff0cd7cbc74 /src/librustc_codegen_ssa/mir/constant.rs | |
| parent | 6b561b4917e803c4be4ca44d8e552b680cb9e380 (diff) | |
| download | rust-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.rs | 19 |
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)), } |
