Struct rustc::middle::typeck::infer::region_inference::RegionVarBindings[src]
pub struct RegionVarBindings<'a> {
// some fields omitted
}Methods
impl<'a> RegionVarBindings<'a>
fn new(tcx: &'a ctxt) -> RegionVarBindings<'a>
fn in_snapshot(&self) -> bool
fn start_snapshot(&self) -> RegionSnapshot
fn mark(&self) -> RegionMark
fn commit(&self, snapshot: RegionSnapshot)
fn rollback_to(&self, snapshot: RegionSnapshot)
fn num_vars(&self) -> uint
fn new_region_var(&self, origin: RegionVariableOrigin) -> RegionVid
fn new_skolemized(&self, br: BoundRegion) -> Region
fn new_bound(&self, binder_id: NodeId) -> Region
fn add_constraint(&self, constraint: Constraint, origin: SubregionOrigin)
fn make_subregion(&self, origin: SubregionOrigin, sub: Region, sup: Region)
fn lub_regions(&self, origin: SubregionOrigin, a: Region, b: Region) -> Region
fn glb_regions(&self, origin: SubregionOrigin, a: Region, b: Region) -> Region
fn resolve_var(&self, rid: RegionVid) -> Region
fn combine_vars(&self, t: CombineMapType, a: Region, b: Region, origin: SubregionOrigin, relate: |this: &RegionVarBindings, old_r: Region, new_r: Region|) -> Region
fn vars_created_since_mark(&self, mark: RegionMark) -> Vec<RegionVid>
fn tainted(&self, mark: RegionMark, r0: Region) -> Vec<Region>
Computes all regions that have been related to r0 in any
way since the mark mark was made---r0 itself will be
the first entry. This is used when checking whether
skolemized regions are being improperly related to other
regions.
fn resolve_regions(&self) -> Vec<RegionResolutionError>
This function performs the actual region resolution. It must be called after all constraints have been added. It performs a fixed-point iteration to find region values which satisfy all constraints, assuming such values can be found; if they cannot, errors are reported.