diff options
| author | Oli Scherer <github35764891676564198441@oli-obk.de> | 2021-03-08 16:18:03 +0000 |
|---|---|---|
| committer | Oli Scherer <github35764891676564198441@oli-obk.de> | 2021-03-12 12:43:54 +0000 |
| commit | 3127a9c60f267c862d2b0f1250c28f38891b94aa (patch) | |
| tree | 2985fdcfe65cc2360239543f4b0c4f6730e0f9f3 /compiler/rustc_codegen_ssa/src | |
| parent | 3ecde6f5db72c0a99824ec91f57411442026141d (diff) | |
| download | rust-3127a9c60f267c862d2b0f1250c28f38891b94aa.tar.gz rust-3127a9c60f267c862d2b0f1250c28f38891b94aa.zip | |
Prepare mir::Constant for ty::Const only supporting valtrees
Diffstat (limited to 'compiler/rustc_codegen_ssa/src')
| -rw-r--r-- | compiler/rustc_codegen_ssa/src/mir/block.rs | 2 | ||||
| -rw-r--r-- | compiler/rustc_codegen_ssa/src/mir/constant.rs | 7 |
2 files changed, 7 insertions, 2 deletions
diff --git a/compiler/rustc_codegen_ssa/src/mir/block.rs b/compiler/rustc_codegen_ssa/src/mir/block.rs index fc4fc08bb0a..04225ddd36f 100644 --- a/compiler/rustc_codegen_ssa/src/mir/block.rs +++ b/compiler/rustc_codegen_ssa/src/mir/block.rs @@ -860,7 +860,7 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> { } mir::InlineAsmOperand::SymFn { ref value } => { let literal = self.monomorphize(value.literal); - if let ty::FnDef(def_id, substs) = *literal.ty.kind() { + if let ty::FnDef(def_id, substs) = *literal.ty().kind() { let instance = ty::Instance::resolve_for_fn_ptr( bx.tcx(), ty::ParamEnv::reveal_all(), diff --git a/compiler/rustc_codegen_ssa/src/mir/constant.rs b/compiler/rustc_codegen_ssa/src/mir/constant.rs index 114f6a4032a..d73e2325a8b 100644 --- a/compiler/rustc_codegen_ssa/src/mir/constant.rs +++ b/compiler/rustc_codegen_ssa/src/mir/constant.rs @@ -24,7 +24,12 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> { &self, constant: &mir::Constant<'tcx>, ) -> Result<ConstValue<'tcx>, ErrorHandled> { - match self.monomorphize(constant.literal).val { + let ct = self.monomorphize(constant.literal); + let ct = match ct { + mir::ConstantSource::Ty(ct) => ct, + mir::ConstantSource::Val(val, _) => return Ok(val), + }; + match ct.val { ty::ConstKind::Unevaluated(def, substs, promoted) => self .cx .tcx() |
