@@ -130,11 +130,14 @@ impl<D> TyBuilder<D> {
130130 }
131131
132132 pub fn fill_with_unknown ( self ) -> Self {
133+ let interner = DbInterner :: conjure ( ) ;
133134 // self.fill is inlined to make borrow checker happy
134135 let mut this = self ;
135136 let filler = this. param_kinds [ this. vec . len ( ) ..] . iter ( ) . map ( |x| match x {
136137 ParamKind :: Type => TyKind :: Error . intern ( Interner ) . cast ( Interner ) ,
137- ParamKind :: Const ( ty) => unknown_const_as_generic ( ty. clone ( ) ) ,
138+ ParamKind :: Const ( ty) => {
139+ unknown_const_as_generic ( ty. to_nextsolver ( interner) ) . to_chalk ( interner)
140+ }
138141 ParamKind :: Lifetime => error_lifetime ( ) . cast ( Interner ) ,
139142 } ) ;
140143 this. vec . extend ( filler. casted ( Interner ) ) ;
@@ -219,13 +222,16 @@ impl TyBuilder<()> {
219222 }
220223
221224 pub fn unknown_subst ( db : & dyn HirDatabase , def : impl Into < GenericDefId > ) -> Substitution {
225+ let interner = DbInterner :: conjure ( ) ;
222226 let params = generics ( db, def. into ( ) ) ;
223227 Substitution :: from_iter (
224228 Interner ,
225229 params. iter_id ( ) . map ( |id| match id {
226230 GenericParamId :: TypeParamId ( _) => TyKind :: Error . intern ( Interner ) . cast ( Interner ) ,
227231 GenericParamId :: ConstParamId ( id) => {
228- unknown_const_as_generic ( db. const_param_ty ( id) ) . cast ( Interner )
232+ unknown_const_as_generic ( db. const_param_ty_ns ( id) )
233+ . to_chalk ( interner)
234+ . cast ( Interner )
229235 }
230236 GenericParamId :: LifetimeParamId ( _) => error_lifetime ( ) . cast ( Interner ) ,
231237 } ) ,
@@ -267,6 +273,7 @@ impl TyBuilder<hir_def::AdtId> {
267273 db : & dyn HirDatabase ,
268274 mut fallback : impl FnMut ( ) -> Ty ,
269275 ) -> Self {
276+ let interner = DbInterner :: conjure ( ) ;
270277 // Note that we're building ADT, so we never have parent generic parameters.
271278 let defaults = db. generic_defaults ( self . data . into ( ) ) ;
272279
@@ -287,7 +294,9 @@ impl TyBuilder<hir_def::AdtId> {
287294 // The defaults may be missing if no param has default, so fill that.
288295 let filler = self . param_kinds [ self . vec . len ( ) ..] . iter ( ) . map ( |x| match x {
289296 ParamKind :: Type => fallback ( ) . cast ( Interner ) ,
290- ParamKind :: Const ( ty) => unknown_const_as_generic ( ty. clone ( ) ) ,
297+ ParamKind :: Const ( ty) => {
298+ unknown_const_as_generic ( ty. to_nextsolver ( interner) ) . to_chalk ( interner)
299+ }
291300 ParamKind :: Lifetime => error_lifetime ( ) . cast ( Interner ) ,
292301 } ) ;
293302 self . vec . extend ( filler. casted ( Interner ) ) ;
0 commit comments