File tree 1 file changed +14
-2
lines changed
1 file changed +14
-2
lines changed Original file line number Diff line number Diff line change @@ -558,10 +558,22 @@ impl<'a> TypeFolder for SubstFolder<'a> {
558
558
// the specialized routine
559
559
// `middle::typeck::check::regionmanip::replace_late_regions_in_fn_sig()`.
560
560
match r {
561
- ty:: ReEarlyBound ( _, space, i, _ ) => {
561
+ ty:: ReEarlyBound ( _, space, i, region_name ) => {
562
562
match self . substs . regions {
563
563
ErasedRegions => ty:: ReStatic ,
564
- NonerasedRegions ( ref regions) => * regions. get ( space, i) ,
564
+ NonerasedRegions ( ref regions) =>
565
+ match regions. opt_get ( space, i) {
566
+ Some ( t) => * t,
567
+ None => {
568
+ let span = self . span . unwrap_or ( DUMMY_SP ) ;
569
+ self . tcx ( ) . sess . span_bug (
570
+ span,
571
+ format ! ( "Type parameter out of range \
572
+ when substituting in region {} (root type={})",
573
+ region_name. as_str( ) ,
574
+ self . root_ty. repr( self . tcx( ) ) ) . as_slice ( ) ) ;
575
+ }
576
+ }
565
577
}
566
578
}
567
579
_ => r
You can’t perform that action at this time.
0 commit comments