33use std:: { fmt, mem, sync:: Arc } ;
44
55use chalk_ir:: {
6- cast:: Cast , fold:: Fold , interner:: HasInterner , zip:: Zip , CanonicalVarKind , FloatTy , IntTy ,
7- NoSolution , TyVariableKind , UniverseIndex ,
6+ cast:: Cast , fold:: TypeFoldable , interner:: HasInterner , zip:: Zip , CanonicalVarKind , FloatTy ,
7+ IntTy , NoSolution , TyVariableKind , UniverseIndex ,
88} ;
99use chalk_solve:: infer:: ParameterEnaVariableExt ;
1010use ena:: unify:: UnifyKey ;
@@ -20,12 +20,12 @@ use crate::{
2020} ;
2121
2222impl < ' a > InferenceContext < ' a > {
23- pub ( super ) fn canonicalize < T : Fold < Interner > + HasInterner < Interner = Interner > > (
23+ pub ( super ) fn canonicalize < T : TypeFoldable < Interner > + HasInterner < Interner = Interner > > (
2424 & mut self ,
2525 t : T ,
26- ) -> Canonicalized < T :: Result >
26+ ) -> Canonicalized < T >
2727 where
28- T :: Result : HasInterner < Interner = Interner > ,
28+ T : HasInterner < Interner = Interner > ,
2929 {
3030 self . table . canonicalize ( t)
3131 }
@@ -200,12 +200,12 @@ impl<'a> InferenceTable<'a> {
200200 . intern ( Interner )
201201 }
202202
203- pub ( crate ) fn canonicalize < T : Fold < Interner > + HasInterner < Interner = Interner > > (
203+ pub ( crate ) fn canonicalize < T : TypeFoldable < Interner > + HasInterner < Interner = Interner > > (
204204 & mut self ,
205205 t : T ,
206- ) -> Canonicalized < T :: Result >
206+ ) -> Canonicalized < T >
207207 where
208- T :: Result : HasInterner < Interner = Interner > ,
208+ T : HasInterner < Interner = Interner > ,
209209 {
210210 // try to resolve obligations before canonicalizing, since this might
211211 // result in new knowledge about variables
@@ -292,9 +292,9 @@ impl<'a> InferenceTable<'a> {
292292 & mut self ,
293293 t : T ,
294294 fallback : & dyn Fn ( InferenceVar , VariableKind , GenericArg , DebruijnIndex ) -> GenericArg ,
295- ) -> T :: Result
295+ ) -> T
296296 where
297- T : HasInterner < Interner = Interner > + Fold < Interner > ,
297+ T : HasInterner < Interner = Interner > + TypeFoldable < Interner > ,
298298 {
299299 self . resolve_with_fallback_inner ( & mut Vec :: new ( ) , t, & fallback)
300300 }
@@ -310,9 +310,9 @@ impl<'a> InferenceTable<'a> {
310310 )
311311 }
312312
313- pub ( crate ) fn instantiate_canonical < T > ( & mut self , canonical : Canonical < T > ) -> T :: Result
313+ pub ( crate ) fn instantiate_canonical < T > ( & mut self , canonical : Canonical < T > ) -> T
314314 where
315- T : HasInterner < Interner = Interner > + Fold < Interner > + std:: fmt:: Debug ,
315+ T : HasInterner < Interner = Interner > + TypeFoldable < Interner > + std:: fmt:: Debug ,
316316 {
317317 let subst = self . fresh_subst ( canonical. binders . as_slice ( Interner ) ) ;
318318 subst. apply ( canonical. value , Interner )
@@ -323,9 +323,9 @@ impl<'a> InferenceTable<'a> {
323323 var_stack : & mut Vec < InferenceVar > ,
324324 t : T ,
325325 fallback : & dyn Fn ( InferenceVar , VariableKind , GenericArg , DebruijnIndex ) -> GenericArg ,
326- ) -> T :: Result
326+ ) -> T
327327 where
328- T : HasInterner < Interner = Interner > + Fold < Interner > ,
328+ T : HasInterner < Interner = Interner > + TypeFoldable < Interner > ,
329329 {
330330 t. fold_with (
331331 & mut resolve:: Resolver { table : self , var_stack, fallback } ,
@@ -334,9 +334,9 @@ impl<'a> InferenceTable<'a> {
334334 . expect ( "fold failed unexpectedly" )
335335 }
336336
337- pub ( crate ) fn resolve_completely < T > ( & mut self , t : T ) -> T :: Result
337+ pub ( crate ) fn resolve_completely < T > ( & mut self , t : T ) -> T
338338 where
339- T : HasInterner < Interner = Interner > + Fold < Interner > ,
339+ T : HasInterner < Interner = Interner > + TypeFoldable < Interner > ,
340340 {
341341 self . resolve_with_fallback ( t, & |_, _, d, _| d)
342342 }
@@ -447,19 +447,19 @@ impl<'a> InferenceTable<'a> {
447447 }
448448 }
449449
450- pub ( crate ) fn fudge_inference < T : Fold < Interner > > (
450+ pub ( crate ) fn fudge_inference < T : TypeFoldable < Interner > > (
451451 & mut self ,
452452 f : impl FnOnce ( & mut Self ) -> T ,
453- ) -> T :: Result {
454- use chalk_ir:: fold:: Folder ;
453+ ) -> T {
454+ use chalk_ir:: fold:: TypeFolder ;
455455 struct VarFudger < ' a , ' b > {
456456 table : & ' a mut InferenceTable < ' b > ,
457457 highest_known_var : InferenceVar ,
458458 }
459- impl < ' a , ' b > Folder < Interner > for VarFudger < ' a , ' b > {
459+ impl < ' a , ' b > TypeFolder < Interner > for VarFudger < ' a , ' b > {
460460 type Error = NoSolution ;
461461
462- fn as_dyn ( & mut self ) -> & mut dyn Folder < Interner , Error = Self :: Error > {
462+ fn as_dyn ( & mut self ) -> & mut dyn TypeFolder < Interner , Error = Self :: Error > {
463463 self
464464 }
465465
@@ -635,7 +635,7 @@ mod resolve {
635635 } ;
636636 use chalk_ir:: {
637637 cast:: Cast ,
638- fold:: { Fold , Folder } ,
638+ fold:: { TypeFoldable , TypeFolder } ,
639639 Fallible , NoSolution ,
640640 } ;
641641 use hir_def:: type_ref:: ConstScalar ;
@@ -645,13 +645,13 @@ mod resolve {
645645 pub ( super ) var_stack : & ' a mut Vec < InferenceVar > ,
646646 pub ( super ) fallback : F ,
647647 }
648- impl < ' a , ' b , ' i , F > Folder < Interner > for Resolver < ' a , ' b , F >
648+ impl < ' a , ' b , ' i , F > TypeFolder < Interner > for Resolver < ' a , ' b , F >
649649 where
650650 F : Fn ( InferenceVar , VariableKind , GenericArg , DebruijnIndex ) -> GenericArg + ' i ,
651651 {
652652 type Error = NoSolution ;
653653
654- fn as_dyn ( & mut self ) -> & mut dyn Folder < Interner , Error = Self :: Error > {
654+ fn as_dyn ( & mut self ) -> & mut dyn TypeFolder < Interner , Error = Self :: Error > {
655655 self
656656 }
657657
0 commit comments