Skip to content

Commit c802694

Browse files
committed
Make Region::as_var infallible.
It's what all the call sites require.
1 parent 9693b17 commit c802694

File tree

3 files changed

+7
-18
lines changed

3 files changed

+7
-18
lines changed

compiler/rustc_borrowck/src/lib.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -507,9 +507,7 @@ impl<'cx, 'tcx> BorrowckInferCtxt<'cx, 'tcx> {
507507
F: Fn() -> RegionCtxt,
508508
{
509509
let next_region = self.infcx.next_region_var(origin);
510-
let vid = next_region
511-
.as_var()
512-
.unwrap_or_else(|| bug!("expected RegionKind::RegionVar on {:?}", next_region));
510+
let vid = next_region.as_var();
513511

514512
if cfg!(debug_assertions) && !self.inside_canonicalization_ctxt() {
515513
debug!("inserting vid {:?} with origin {:?} into var_to_origin", vid, origin);
@@ -531,9 +529,7 @@ impl<'cx, 'tcx> BorrowckInferCtxt<'cx, 'tcx> {
531529
F: Fn() -> RegionCtxt,
532530
{
533531
let next_region = self.infcx.next_nll_region_var(origin.clone());
534-
let vid = next_region
535-
.as_var()
536-
.unwrap_or_else(|| bug!("expected RegionKind::RegionVar on {:?}", next_region));
532+
let vid = next_region.as_var();
537533

538534
if cfg!(debug_assertions) && !self.inside_canonicalization_ctxt() {
539535
debug!("inserting vid {:?} with origin {:?} into var_to_origin", vid, origin);

compiler/rustc_borrowck/src/type_check/relate_tys.rs

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -131,13 +131,9 @@ impl<'tcx> TypeRelatingDelegate<'tcx> for NllTypeRelatingDelegate<'_, '_, 'tcx>
131131
ty::BoundRegionKind::BrEnv => BoundRegionInfo::Name(sym::env),
132132
};
133133

134-
let reg_var =
135-
reg.as_var().unwrap_or_else(|| bug!("expected region {:?} to be of kind ReVar", reg));
136-
137134
if cfg!(debug_assertions) && !self.type_checker.infcx.inside_canonicalization_ctxt() {
138135
let mut var_to_origin = self.type_checker.infcx.reg_var_to_origin.borrow_mut();
139-
debug!(?reg_var);
140-
var_to_origin.insert(reg_var, RegionCtxt::Placeholder(reg_info));
136+
var_to_origin.insert(reg.as_var(), RegionCtxt::Placeholder(reg_info));
141137
}
142138

143139
reg
@@ -150,12 +146,9 @@ impl<'tcx> TypeRelatingDelegate<'tcx> for NllTypeRelatingDelegate<'_, '_, 'tcx>
150146
universe,
151147
);
152148

153-
let reg_var =
154-
reg.as_var().unwrap_or_else(|| bug!("expected region {:?} to be of kind ReVar", reg));
155-
156149
if cfg!(debug_assertions) && !self.type_checker.infcx.inside_canonicalization_ctxt() {
157150
let mut var_to_origin = self.type_checker.infcx.reg_var_to_origin.borrow_mut();
158-
var_to_origin.insert(reg_var, RegionCtxt::Existential(None));
151+
var_to_origin.insert(reg.as_var(), RegionCtxt::Existential(None));
159152
}
160153

161154
reg

compiler/rustc_middle/src/ty/sty.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1772,10 +1772,10 @@ impl<'tcx> Region<'tcx> {
17721772
matches!(self.kind(), ty::ReVar(_))
17731773
}
17741774

1775-
pub fn as_var(self) -> Option<RegionVid> {
1775+
pub fn as_var(self) -> RegionVid {
17761776
match self.kind() {
1777-
ty::ReVar(vid) => Some(vid),
1778-
_ => None,
1777+
ty::ReVar(vid) => vid,
1778+
_ => bug!("expected region {:?} to be of kind ReVar", self),
17791779
}
17801780
}
17811781
}

0 commit comments

Comments
 (0)