@@ -6,8 +6,9 @@ use hir_def::ConstParamId;
66use macros:: { TypeFoldable , TypeVisitable } ;
77use rustc_ast_ir:: visit:: VisitorResult ;
88use rustc_type_ir:: {
9- BoundVar , DebruijnIndex , FlagComputation , Flags , TypeFoldable , TypeSuperFoldable ,
10- TypeSuperVisitable , TypeVisitable , TypeVisitableExt , WithCachedTypeInfo ,
9+ BoundVar , BoundVarIndexKind , ConstVid , DebruijnIndex , FlagComputation , Flags , InferConst ,
10+ TypeFoldable , TypeSuperFoldable , TypeSuperVisitable , TypeVisitable , TypeVisitableExt ,
11+ WithCachedTypeInfo ,
1112 inherent:: { IntoKind , ParamEnv as _, PlaceholderLike , SliceLike } ,
1213 relate:: Relate ,
1314} ;
@@ -49,19 +50,19 @@ impl<'db> Const<'db> {
4950 }
5051
5152 pub fn error ( interner : DbInterner < ' db > ) -> Self {
52- Const :: new ( interner, rustc_type_ir :: ConstKind :: Error ( ErrorGuaranteed ) )
53+ Const :: new ( interner, ConstKind :: Error ( ErrorGuaranteed ) )
5354 }
5455
5556 pub fn new_param ( interner : DbInterner < ' db > , param : ParamConst ) -> Self {
56- Const :: new ( interner, rustc_type_ir :: ConstKind :: Param ( param) )
57+ Const :: new ( interner, ConstKind :: Param ( param) )
5758 }
5859
5960 pub fn new_placeholder ( interner : DbInterner < ' db > , placeholder : PlaceholderConst ) -> Self {
6061 Const :: new ( interner, ConstKind :: Placeholder ( placeholder) )
6162 }
6263
6364 pub fn new_bound ( interner : DbInterner < ' db > , index : DebruijnIndex , bound : BoundConst ) -> Self {
64- Const :: new ( interner, ConstKind :: Bound ( index, bound) )
65+ Const :: new ( interner, ConstKind :: Bound ( BoundVarIndexKind :: Bound ( index) , bound) )
6566 }
6667
6768 pub fn new_valtree (
@@ -340,28 +341,34 @@ impl<'db> Flags for Const<'db> {
340341}
341342
342343impl < ' db > rustc_type_ir:: inherent:: Const < DbInterner < ' db > > for Const < ' db > {
343- fn new_infer ( interner : DbInterner < ' db > , var : rustc_type_ir :: InferConst ) -> Self {
344+ fn new_infer ( interner : DbInterner < ' db > , var : InferConst ) -> Self {
344345 Const :: new ( interner, ConstKind :: Infer ( var) )
345346 }
346347
347- fn new_var ( interner : DbInterner < ' db > , var : rustc_type_ir :: ConstVid ) -> Self {
348- Const :: new ( interner, ConstKind :: Infer ( rustc_type_ir :: InferConst :: Var ( var) ) )
348+ fn new_var ( interner : DbInterner < ' db > , var : ConstVid ) -> Self {
349+ Const :: new ( interner, ConstKind :: Infer ( InferConst :: Var ( var) ) )
349350 }
350351
351- fn new_bound (
352- interner : DbInterner < ' db > ,
353- debruijn : rustc_type_ir:: DebruijnIndex ,
354- var : BoundConst ,
355- ) -> Self {
356- Const :: new ( interner, ConstKind :: Bound ( debruijn, var) )
352+ fn new_bound ( interner : DbInterner < ' db > , debruijn : DebruijnIndex , var : BoundConst ) -> Self {
353+ Const :: new ( interner, ConstKind :: Bound ( BoundVarIndexKind :: Bound ( debruijn) , var) )
354+ }
355+
356+ fn new_anon_bound ( interner : DbInterner < ' db > , debruijn : DebruijnIndex , var : BoundVar ) -> Self {
357+ Const :: new (
358+ interner,
359+ ConstKind :: Bound ( BoundVarIndexKind :: Bound ( debruijn) , BoundConst { var } ) ,
360+ )
357361 }
358362
359- fn new_anon_bound (
363+ fn new_canonical_bound ( interner : DbInterner < ' db > , var : BoundVar ) -> Self {
364+ Const :: new ( interner, ConstKind :: Bound ( BoundVarIndexKind :: Canonical , BoundConst { var } ) )
365+ }
366+
367+ fn new_placeholder (
360368 interner : DbInterner < ' db > ,
361- debruijn : rustc_type_ir:: DebruijnIndex ,
362- var : rustc_type_ir:: BoundVar ,
369+ param : <DbInterner < ' db > as rustc_type_ir:: Interner >:: PlaceholderConst ,
363370 ) -> Self {
364- Const :: new ( interner, ConstKind :: Bound ( debruijn , BoundConst { var } ) )
371+ Const :: new ( interner, ConstKind :: Placeholder ( param ) )
365372 }
366373
367374 fn new_unevaluated (
@@ -378,13 +385,6 @@ impl<'db> rustc_type_ir::inherent::Const<DbInterner<'db>> for Const<'db> {
378385 fn new_error ( interner : DbInterner < ' db > , guar : ErrorGuaranteed ) -> Self {
379386 Const :: new ( interner, ConstKind :: Error ( guar) )
380387 }
381-
382- fn new_placeholder (
383- interner : DbInterner < ' db > ,
384- param : <DbInterner < ' db > as rustc_type_ir:: Interner >:: PlaceholderConst ,
385- ) -> Self {
386- Const :: new ( interner, ConstKind :: Placeholder ( param) )
387- }
388388}
389389
390390#[ derive( Copy , Clone , Debug , PartialEq , Eq , Hash ) ]
0 commit comments