mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-21 17:52:12 +03:00
Remove ty::BrFresh and new_bound
This commit is contained in:
@@ -100,7 +100,6 @@ fn hash_stable<W: StableHasherResult>(&self,
|
||||
ty::ReClosureBound(vid) => {
|
||||
vid.hash_stable(hcx, hasher);
|
||||
}
|
||||
ty::ReLateBound(..) |
|
||||
ty::ReVar(..) |
|
||||
ty::RePlaceholder(..) => {
|
||||
bug!("StableHasher: unexpected region {:?}", *self)
|
||||
|
||||
@@ -218,10 +218,6 @@ fn msg_span_from_early_bound_and_free_regions(
|
||||
format!("the anonymous lifetime #{} defined on", idx + 1),
|
||||
self.hir().span_by_hir_id(node),
|
||||
),
|
||||
ty::BrFresh(_) => (
|
||||
"an anonymous lifetime defined on".to_owned(),
|
||||
self.hir().span_by_hir_id(node),
|
||||
),
|
||||
_ => (
|
||||
format!("the lifetime {} as defined on", region),
|
||||
cm.def_span(self.hir().span_by_hir_id(node)),
|
||||
|
||||
@@ -11,11 +11,11 @@
|
||||
use rustc_data_structures::unify as ut;
|
||||
use crate::ty::ReStatic;
|
||||
use crate::ty::{self, Ty, TyCtxt};
|
||||
use crate::ty::{BrFresh, ReLateBound, ReVar};
|
||||
use crate::ty::{ReLateBound, ReVar};
|
||||
use crate::ty::{Region, RegionVid};
|
||||
|
||||
use std::collections::BTreeMap;
|
||||
use std::{cmp, fmt, mem, u32};
|
||||
use std::{cmp, fmt, mem};
|
||||
use std::ops::Range;
|
||||
|
||||
mod leak_check;
|
||||
@@ -37,10 +37,6 @@ pub struct RegionConstraintCollector<'tcx> {
|
||||
/// exist). This prevents us from making many such regions.
|
||||
glbs: CombineMap<'tcx>,
|
||||
|
||||
/// Global counter used during the GLB algorithm to create unique
|
||||
/// names for fresh bound regions
|
||||
bound_count: u32,
|
||||
|
||||
/// The undo log records actions that might later be undone.
|
||||
///
|
||||
/// Note: `num_open_snapshots` is used to track if we are actively
|
||||
@@ -392,7 +388,6 @@ pub fn take_and_reset_data(&mut self) -> RegionConstraintData<'tcx> {
|
||||
data,
|
||||
lubs,
|
||||
glbs,
|
||||
bound_count: _,
|
||||
undo_log: _,
|
||||
num_open_snapshots: _,
|
||||
unification_table,
|
||||
@@ -579,39 +574,6 @@ fn kill_constraint<'tcx>(
|
||||
}
|
||||
}
|
||||
|
||||
pub fn new_bound(
|
||||
&mut self,
|
||||
tcx: TyCtxt<'_, '_, 'tcx>,
|
||||
debruijn: ty::DebruijnIndex,
|
||||
) -> Region<'tcx> {
|
||||
// Creates a fresh bound variable for use in GLB computations.
|
||||
// See discussion of GLB computation in the large comment at
|
||||
// the top of this file for more details.
|
||||
//
|
||||
// This computation is potentially wrong in the face of
|
||||
// rollover. It's conceivable, if unlikely, that one might
|
||||
// wind up with accidental capture for nested functions in
|
||||
// that case, if the outer function had bound regions created
|
||||
// a very long time before and the inner function somehow
|
||||
// wound up rolling over such that supposedly fresh
|
||||
// identifiers were in fact shadowed. For now, we just assert
|
||||
// that there is no rollover -- eventually we should try to be
|
||||
// robust against this possibility, either by checking the set
|
||||
// of bound identifiers that appear in a given expression and
|
||||
// ensure that we generate one that is distinct, or by
|
||||
// changing the representation of bound regions in a fn
|
||||
// declaration
|
||||
|
||||
let sc = self.bound_count;
|
||||
self.bound_count = sc + 1;
|
||||
|
||||
if sc >= self.bound_count {
|
||||
bug!("rollover in RegionInference new_bound()");
|
||||
}
|
||||
|
||||
tcx.mk_region(ReLateBound(debruijn, BrFresh(sc)))
|
||||
}
|
||||
|
||||
fn add_constraint(&mut self, constraint: Constraint<'tcx>, origin: SubregionOrigin<'tcx>) {
|
||||
// cannot add constraints once regions are resolved
|
||||
debug!(
|
||||
|
||||
@@ -1441,7 +1441,6 @@ fn name_by_region_index(index: usize) -> InternedString {
|
||||
br
|
||||
}
|
||||
ty::BrAnon(_) |
|
||||
ty::BrFresh(_) |
|
||||
ty::BrEnv => {
|
||||
let name = loop {
|
||||
let name = name_by_region_index(region_index);
|
||||
|
||||
@@ -94,7 +94,6 @@ impl fmt::Debug for ty::BoundRegion {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
match *self {
|
||||
ty::BrAnon(n) => write!(f, "BrAnon({:?})", n),
|
||||
ty::BrFresh(n) => write!(f, "BrFresh({:?})", n),
|
||||
ty::BrNamed(did, name) => {
|
||||
write!(f, "BrNamed({:?}:{:?}, {})",
|
||||
did.krate, did.index, name)
|
||||
|
||||
@@ -56,9 +56,6 @@ pub enum BoundRegion {
|
||||
/// the event of shadowing.
|
||||
BrNamed(DefId, InternedString),
|
||||
|
||||
/// Fresh bound identifiers created during GLB computations.
|
||||
BrFresh(u32),
|
||||
|
||||
/// Anonymous region for the implicit env pointer parameter
|
||||
/// to a closure
|
||||
BrEnv,
|
||||
|
||||
@@ -274,7 +274,7 @@ fn give_name_from_error_region(
|
||||
}
|
||||
}
|
||||
|
||||
ty::BoundRegion::BrAnon(_) | ty::BoundRegion::BrFresh(_) => None,
|
||||
ty::BoundRegion::BrAnon(_) => None,
|
||||
},
|
||||
|
||||
ty::ReLateBound(..)
|
||||
|
||||
@@ -2048,7 +2048,7 @@ pub fn ty_of_fn(&self,
|
||||
for br in late_bound_in_ret.difference(&late_bound_in_args) {
|
||||
let lifetime_name = match *br {
|
||||
ty::BrNamed(_, name) => format!("lifetime `{}`,", name),
|
||||
ty::BrAnon(_) | ty::BrFresh(_) | ty::BrEnv => "an anonymous lifetime".to_string(),
|
||||
ty::BrAnon(_) | ty::BrEnv => "an anonymous lifetime".to_string(),
|
||||
};
|
||||
let mut err = struct_span_err!(tcx.sess,
|
||||
decl.output.span(),
|
||||
|
||||
Reference in New Issue
Block a user