mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-17 05:25:37 +03:00
Delay ICE in fold_region so feature gate has chance to stop compilation cleanly.
This commit is contained in:
@@ -479,21 +479,22 @@ fn fold_region(&mut self, r: ty::Region<'tcx>) -> ty::Region<'tcx> {
|
||||
// the specialized routine `ty::replace_late_regions()`.
|
||||
match *r {
|
||||
ty::ReEarlyBound(data) => {
|
||||
let r = self.substs.get(data.index as usize).map(|k| k.unpack());
|
||||
match r {
|
||||
let rk = self.substs.get(data.index as usize).map(|k| k.unpack());
|
||||
match rk {
|
||||
Some(UnpackedKind::Lifetime(lt)) => {
|
||||
self.shift_region_through_binders(lt)
|
||||
}
|
||||
_ => {
|
||||
let span = self.span.unwrap_or(DUMMY_SP);
|
||||
span_bug!(
|
||||
span,
|
||||
let msg = format!(
|
||||
"Region parameter out of range \
|
||||
when substituting in region {} (root type={:?}) \
|
||||
(index={})",
|
||||
data.name,
|
||||
self.root_ty,
|
||||
data.index);
|
||||
self.tcx.sess.delay_span_bug(span, &msg);
|
||||
r
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user