@@ -166,7 +166,7 @@ impl<'a, 'tcx> TranslationContext<'a, 'tcx> {
166
166
use rustc_middle:: ty:: TypeAndMut ;
167
167
use rustc_middle:: ty:: { AdtDef , Binder , ExistentialProjection , ExistentialTraitRef } ;
168
168
169
- orig. fold_with ( & mut BottomUpFolder {
169
+ let Ok ( result ) = orig. fold_with ( & mut BottomUpFolder {
170
170
tcx : self . tcx ,
171
171
ty_op : |ty| {
172
172
match * ty. kind ( ) {
@@ -327,7 +327,8 @@ impl<'a, 'tcx> TranslationContext<'a, 'tcx> {
327
327
} ,
328
328
lt_op : |region| self . translate_region ( region) ,
329
329
ct_op : |konst| konst, // TODO: translate consts
330
- } )
330
+ } ) ;
331
+ result
331
332
}
332
333
333
334
/// Translate a region.
@@ -558,12 +559,12 @@ impl<'a, 'tcx> TypeFolder<'tcx> for InferenceCleanupFolder<'a, 'tcx> {
558
559
self . infcx . tcx
559
560
}
560
561
561
- fn fold_ty ( & mut self , ty : Ty < ' tcx > ) -> Ty < ' tcx > {
562
+ fn fold_ty ( & mut self , ty : Ty < ' tcx > ) -> Result < Ty < ' tcx > , Self :: Error > {
562
563
use rustc_middle:: ty:: TyKind ;
563
564
use rustc_middle:: ty:: TypeAndMut ;
564
565
565
- let t1 = ty. super_fold_with ( self ) ;
566
- match * t1. kind ( ) {
566
+ let t1 = ty. super_fold_with ( self ) ? ;
567
+ Ok ( match * t1. kind ( ) {
567
568
TyKind :: Ref ( region, ty, mutbl) if region. needs_infer ( ) => {
568
569
let ty_and_mut = TypeAndMut { ty, mutbl } ;
569
570
self . infcx
@@ -572,15 +573,15 @@ impl<'a, 'tcx> TypeFolder<'tcx> for InferenceCleanupFolder<'a, 'tcx> {
572
573
}
573
574
TyKind :: Infer ( _) => self . infcx . tcx . ty_error ( ) ,
574
575
_ => t1,
575
- }
576
+ } )
576
577
}
577
578
578
- fn fold_region ( & mut self , r : Region < ' tcx > ) -> Region < ' tcx > {
579
- let r1 = r. super_fold_with ( self ) ;
580
- if r1. needs_infer ( ) {
579
+ fn fold_region ( & mut self , r : Region < ' tcx > ) -> Result < Region < ' tcx > , Self :: Error > {
580
+ let r1 = r. super_fold_with ( self ) ? ;
581
+ Ok ( if r1. needs_infer ( ) {
581
582
self . infcx . tcx . lifetimes . re_erased
582
583
} else {
583
584
r1
584
- }
585
+ } )
585
586
}
586
587
}
0 commit comments