@@ -61,9 +61,8 @@ use crate::{
6161 next_solver:: {
6262 BoundExistentialPredicate , Ctor , DbInterner , GenericArgs , SolverDefId ,
6363 mapping:: {
64- ChalkToNextSolver , bound_var_to_lifetime_idx, bound_var_to_type_or_const_param_idx,
65- convert_args_for_result, convert_const_for_result, convert_region_for_result,
66- convert_ty_for_result,
64+ ChalkToNextSolver , convert_args_for_result, convert_const_for_result,
65+ convert_region_for_result, convert_ty_for_result,
6766 } ,
6867 } ,
6968 primitive, to_assoc_type_id,
@@ -641,7 +640,7 @@ impl HirDisplay for ProjectionTy {
641640 && !f. bounds_formatting_ctx . contains ( self )
642641 {
643642 let db = f. db ;
644- let id = from_placeholder_idx ( db, * idx) ;
643+ let id = from_placeholder_idx ( db, * idx) . 0 ;
645644 let generics = generics ( db, id. parent ) ;
646645
647646 let substs = generics. placeholder_subst ( db) ;
@@ -736,14 +735,14 @@ impl HirDisplay for Const {
736735impl < ' db > HirDisplay for crate :: next_solver:: Const < ' db > {
737736 fn hir_fmt ( & self , f : & mut HirFormatter < ' _ > ) -> Result < ( ) , HirDisplayError > {
738737 match self . kind ( ) {
738+ rustc_type_ir:: ConstKind :: Placeholder ( _) => write ! ( f, "<placeholder>" ) ,
739739 rustc_type_ir:: ConstKind :: Bound ( db, bound_const) => {
740740 write ! ( f, "?{}.{}" , db. as_u32( ) , bound_const. as_u32( ) )
741741 }
742742 rustc_type_ir:: ConstKind :: Infer ( ..) => write ! ( f, "#c#" ) ,
743- rustc_type_ir:: ConstKind :: Placeholder ( idx) => {
744- let id = bound_var_to_type_or_const_param_idx ( f. db , idx. bound ) ;
745- let generics = generics ( f. db , id. parent ) ;
746- let param_data = & generics[ id. local_id ] ;
743+ rustc_type_ir:: ConstKind :: Param ( param) => {
744+ let generics = generics ( f. db , param. id . parent ( ) ) ;
745+ let param_data = & generics[ param. id . local_id ( ) ] ;
747746 write ! ( f, "{}" , param_data. name( ) . unwrap( ) . display( f. db, f. edition( ) ) ) ?;
748747 Ok ( ( ) )
749748 }
@@ -765,7 +764,6 @@ impl<'db> HirDisplay for crate::next_solver::Const<'db> {
765764 }
766765 rustc_type_ir:: ConstKind :: Error ( ..) => f. write_char ( '_' ) ,
767766 rustc_type_ir:: ConstKind :: Expr ( ..) => write ! ( f, "<const-expr>" ) ,
768- rustc_type_ir:: ConstKind :: Param ( _) => write ! ( f, "<param>" ) ,
769767 }
770768 }
771769}
@@ -1178,7 +1176,7 @@ impl<'db> HirDisplay for crate::next_solver::Ty<'db> {
11781176 if let TyKind :: Ref ( l, _, _) = kind {
11791177 f. write_char ( '&' ) ?;
11801178 if f. render_region ( l) {
1181- convert_region_for_result ( l) . hir_fmt ( f) ?;
1179+ convert_region_for_result ( interner , l) . hir_fmt ( f) ?;
11821180 f. write_char ( ' ' ) ?;
11831181 }
11841182 match m {
@@ -1611,14 +1609,10 @@ impl<'db> HirDisplay for crate::next_solver::Ty<'db> {
16111609 write ! ( f, "{{closure}}" ) ?;
16121610 }
16131611 }
1614- TyKind :: Placeholder ( idx) => {
1615- let placeholder_index = chalk_ir:: PlaceholderIndex {
1616- idx : idx. bound . var . as_usize ( ) ,
1617- ui : chalk_ir:: UniverseIndex { counter : idx. universe . as_usize ( ) } ,
1618- } ;
1619- let id = from_placeholder_idx ( db, placeholder_index) ;
1620- let generics = generics ( db, id. parent ) ;
1621- let param_data = & generics[ id. local_id ] ;
1612+ TyKind :: Placeholder ( _) => write ! ( f, "{{placeholder}}" ) ?,
1613+ TyKind :: Param ( param) => {
1614+ let generics = generics ( db, param. id . parent ( ) ) ;
1615+ let param_data = & generics[ param. id . local_id ( ) ] ;
16221616 match param_data {
16231617 TypeOrConstParamData :: TypeParamData ( p) => match p. provenance {
16241618 TypeParamProvenance :: TypeParamList | TypeParamProvenance :: TraitSelf => {
@@ -1634,7 +1628,7 @@ impl<'db> HirDisplay for crate::next_solver::Ty<'db> {
16341628 TypeParamProvenance :: ArgumentImplTrait => {
16351629 let substs = generics. placeholder_subst ( db) ;
16361630 let bounds = db
1637- . generic_predicates ( id. parent )
1631+ . generic_predicates ( param . id . parent ( ) )
16381632 . iter ( )
16391633 . map ( |pred| pred. clone ( ) . substitute ( Interner , & substs) )
16401634 . filter ( |wc| match wc. skip_binders ( ) {
@@ -1656,7 +1650,7 @@ impl<'db> HirDisplay for crate::next_solver::Ty<'db> {
16561650 WhereClause :: LifetimeOutlives ( _) => false ,
16571651 } )
16581652 . collect :: < Vec < _ > > ( ) ;
1659- let krate = id. parent . module ( db) . krate ( ) ;
1653+ let krate = param . id . parent ( ) . module ( db) . krate ( ) ;
16601654 write_bounds_like_dyn_trait_with_prefix (
16611655 f,
16621656 "impl" ,
@@ -1671,7 +1665,6 @@ impl<'db> HirDisplay for crate::next_solver::Ty<'db> {
16711665 }
16721666 }
16731667 }
1674- TyKind :: Param ( _) => write ! ( f, "{{param}}" ) ?,
16751668 TyKind :: Bound ( debruijn_index, ty) => {
16761669 let idx = chalk_ir:: BoundVar {
16771670 debruijn : chalk_ir:: DebruijnIndex :: new ( debruijn_index. as_u32 ( ) ) ,
@@ -2294,7 +2287,7 @@ impl HirDisplay for LifetimeData {
22942287 fn hir_fmt ( & self , f : & mut HirFormatter < ' _ > ) -> Result < ( ) , HirDisplayError > {
22952288 match self {
22962289 LifetimeData :: Placeholder ( idx) => {
2297- let id = lt_from_placeholder_idx ( f. db , * idx) ;
2290+ let id = lt_from_placeholder_idx ( f. db , * idx) . 0 ;
22982291 let generics = generics ( f. db , id. parent ) ;
22992292 let param_data = & generics[ id. local_id ] ;
23002293 write ! ( f, "{}" , param_data. name. display( f. db, f. edition( ) ) ) ?;
@@ -2319,10 +2312,9 @@ impl HirDisplay for LifetimeData {
23192312impl < ' db > HirDisplay for crate :: next_solver:: Region < ' db > {
23202313 fn hir_fmt ( & self , f : & mut HirFormatter < ' _ > ) -> Result < ( ) , HirDisplayError > {
23212314 match self . kind ( ) {
2322- rustc_type_ir:: RegionKind :: RePlaceholder ( idx) => {
2323- let id = bound_var_to_lifetime_idx ( f. db , idx. bound . var ) ;
2324- let generics = generics ( f. db , id. parent ) ;
2325- let param_data = & generics[ id. local_id ] ;
2315+ rustc_type_ir:: RegionKind :: ReEarlyParam ( param) => {
2316+ let generics = generics ( f. db , param. id . parent ) ;
2317+ let param_data = & generics[ param. id . local_id ] ;
23262318 write ! ( f, "{}" , param_data. name. display( f. db, f. edition( ) ) ) ?;
23272319 Ok ( ( ) )
23282320 }
@@ -2339,7 +2331,7 @@ impl<'db> HirDisplay for crate::next_solver::Region<'db> {
23392331 }
23402332 }
23412333 rustc_type_ir:: RegionKind :: ReErased => write ! ( f, "'<erased>" ) ,
2342- rustc_type_ir:: RegionKind :: ReEarlyParam ( _) => write ! ( f, "<param >" ) ,
2334+ rustc_type_ir:: RegionKind :: RePlaceholder ( _) => write ! ( f, "<placeholder >" ) ,
23432335 rustc_type_ir:: RegionKind :: ReLateParam ( _) => write ! ( f, "<late-param>" ) ,
23442336 }
23452337 }
0 commit comments