Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/consteval.rs')
-rw-r--r--crates/hir-ty/src/consteval.rs13
1 files changed, 10 insertions, 3 deletions
diff --git a/crates/hir-ty/src/consteval.rs b/crates/hir-ty/src/consteval.rs
index f30ec839a0..abf97f3d0e 100644
--- a/crates/hir-ty/src/consteval.rs
+++ b/crates/hir-ty/src/consteval.rs
@@ -15,8 +15,14 @@ use triomphe::Arc;
use crate::{
Const, ConstData, ConstScalar, ConstValue, GenericArg, Interner, MemoryMap, Substitution,
- TraitEnvironment, Ty, TyBuilder, db::HirDatabase, display::DisplayTarget, generics::Generics,
- infer::InferenceContext, lower::ParamLoweringMode, to_placeholder_idx,
+ TraitEnvironment, Ty, TyBuilder,
+ db::HirDatabase,
+ display::DisplayTarget,
+ generics::Generics,
+ infer::InferenceContext,
+ lower::ParamLoweringMode,
+ next_solver::{DbInterner, mapping::ChalkToNextSolver},
+ to_placeholder_idx,
};
use super::mir::{MirEvalError, MirLowerError, interpret_mir, lower_to_mir, pad16};
@@ -157,7 +163,8 @@ pub fn intern_const_ref(
ty: Ty,
krate: Crate,
) -> Const {
- let layout = || db.layout_of_ty(ty.clone(), TraitEnvironment::empty(krate));
+ let interner = DbInterner::new_with(db, Some(krate), None);
+ let layout = || db.layout_of_ty(ty.to_nextsolver(interner), TraitEnvironment::empty(krate));
let bytes = match value {
LiteralConstRef::Int(i) => {
// FIXME: We should handle failure of layout better.