[−][src]Struct rustc_mir::borrow_check::nll::universal_regions::UniversalRegions
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
Fields
indices: UniversalRegionIndices<'tcx>
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
fr_static: RegionVid
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
The vid assigned to 'static
fr_fn_body: RegionVid
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
A special region vid created to represent the current MIR fn body. It will outlive the entire CFG but it will not outlive any other universal regions.
first_extern_index: usize
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
We create region variables such that they are ordered by their
RegionClassification
. The first block are globals, then
externals, then locals. So things from:
FIRST_GLOBAL_INDEX..first_extern_index
are global;first_extern_index..first_local_index
are external; andfirst_local_index..num_universals
are local.
first_local_index: usize
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
See first_extern_index
.
num_universals: usize
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
The total number of universal region variables instantiated.
defining_ty: DefiningTy<'tcx>
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
The "defining" type for this function, with all universal
regions instantiated. For a closure or generator, this is the
closure type, but for a top-level function it's the FnDef
.
unnormalized_output_ty: Ty<'tcx>
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
The return type of this function, with all regions replaced by
their universal RegionVid
equivalents.
NB. Associated types in this type have not been normalized, as the name suggests. =)
unnormalized_input_tys: &'tcx [Ty<'tcx>]
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
The fully liberated input types of this function, with all
regions replaced by their universal RegionVid
equivalents.
NB. Associated types in these types have not been normalized, as the name suggests. =)
yield_ty: Option<Ty<'tcx>>
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
Methods
impl<'tcx> UniversalRegions<'tcx>
[src]
impl<'tcx> UniversalRegions<'tcx>
pub fn new(
infcx: &InferCtxt<'_, '_, 'tcx>,
mir_def_id: DefId,
param_env: ParamEnv<'tcx>
) -> Self
[src]
pub fn new(
infcx: &InferCtxt<'_, '_, 'tcx>,
mir_def_id: DefId,
param_env: ParamEnv<'tcx>
) -> Self
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
Creates a new and fully initialized UniversalRegions
that
contains indices for all the free regions found in the given
MIR -- that is, all the regions that appear in the function's
signature. This will also compute the relationships that are
known between those regions.
pub fn closure_mapping(
tcx: TyCtxt<'_, '_, 'tcx>,
closure_ty: Ty<'tcx>,
expected_num_vars: usize,
closure_base_def_id: DefId
) -> IndexVec<RegionVid, Region<'tcx>>
[src]
pub fn closure_mapping(
tcx: TyCtxt<'_, '_, 'tcx>,
closure_ty: Ty<'tcx>,
expected_num_vars: usize,
closure_base_def_id: DefId
) -> IndexVec<RegionVid, Region<'tcx>>
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
Given a reference to a closure type, extracts all the values
from its free regions and returns a vector with them. This is
used when the closure's creator checks that the
ClosureRegionRequirements
are met. The requirements from
ClosureRegionRequirements
are expressed in terms of
RegionVid
entries that map into the returned vector V
: so
if the ClosureRegionRequirements
contains something like
'1: '2
, then the caller would impose the constraint that
V[1]: V[2]
.
pub fn is_universal_region(&self, r: RegionVid) -> bool
[src]
pub fn is_universal_region(&self, r: RegionVid) -> bool
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
True if r
is a member of this set of universal regions.
pub fn region_classification(
&self,
r: RegionVid
) -> Option<RegionClassification>
[src]
pub fn region_classification(
&self,
r: RegionVid
) -> Option<RegionClassification>
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
Classifies r
as a universal region, returning None
if this
is not a member of this set of universal regions.
pub fn universal_regions(
&self
) -> impl Iterator<Item = RegionVid>
[src]
pub fn universal_regions(
&self
) -> impl Iterator<Item = RegionVid>
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
Returns an iterator over all the RegionVids corresponding to universally quantified free regions.
pub fn is_local_free_region(&self, r: RegionVid) -> bool
[src]
pub fn is_local_free_region(&self, r: RegionVid) -> bool
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
True if r
is classified as an local region.
pub fn len(&self) -> usize
[src]
pub fn len(&self) -> usize
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
Returns the number of universal regions created in any category.
pub fn num_global_and_external_regions(&self) -> usize
[src]
pub fn num_global_and_external_regions(&self) -> usize
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
Returns the number of global plus external universal regions. For closures, these are the regions that appear free in the closure type (versus those bound in the closure signature). They are therefore the regions between which the closure may impose constraints that its creator must verify.
pub fn named_universal_regions<'s>(
&'s self
) -> impl Iterator<Item = (Region<'tcx>, RegionVid)> + 's
[src]
pub fn named_universal_regions<'s>(
&'s self
) -> impl Iterator<Item = (Region<'tcx>, RegionVid)> + 's
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
Get an iterator over all the early-bound regions that have names.
pub fn to_region_vid(&self, r: Region<'tcx>) -> RegionVid
[src]
pub fn to_region_vid(&self, r: Region<'tcx>) -> RegionVid
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
See UniversalRegionIndices::to_region_vid
.
pub(crate) fn annotate(
&self,
tcx: TyCtxt<'_, '_, 'tcx>,
err: &mut DiagnosticBuilder
)
[src]
pub(crate) fn annotate(
&self,
tcx: TyCtxt<'_, '_, 'tcx>,
err: &mut DiagnosticBuilder
)
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
As part of the NLL unit tests, you can annotate a function with
#[rustc_regions]
, and we will emit information about the region
inference context and -- in particular -- the external constraints
that this region imposes on others. The methods in this file
handle the part about dumping the inference context internal
state.
Trait Implementations
impl<'tcx> Debug for UniversalRegions<'tcx>
[src]
impl<'tcx> Debug for UniversalRegions<'tcx>
Auto Trait Implementations
impl<'tcx> !Send for UniversalRegions<'tcx>
impl<'tcx> !Send for UniversalRegions<'tcx>
impl<'tcx> !Sync for UniversalRegions<'tcx>
impl<'tcx> !Sync for UniversalRegions<'tcx>
Blanket Implementations
impl<T> From for T
[src]
impl<T> From for T
impl<T, U> Into for T where
U: From<T>,
[src]
impl<T, U> Into for T where
U: From<T>,
impl<T, U> TryFrom for T where
T: From<U>,
[src]
impl<T, U> TryFrom for T where
T: From<U>,
type Error = !
try_from
)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
try_from
)Performs the conversion.
impl<T> Borrow for T where
T: ?Sized,
[src]
impl<T> Borrow for T where
T: ?Sized,
ⓘImportant traits for &'a mut Rfn borrow(&self) -> &T
[src]
fn borrow(&self) -> &T
Immutably borrows from an owned value. Read more
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
try_from
)The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
try_from
)Performs the conversion.
impl<T> BorrowMut for T where
T: ?Sized,
[src]
impl<T> BorrowMut for T where
T: ?Sized,
ⓘImportant traits for &'a mut Rfn borrow_mut(&mut self) -> &mut T
[src]
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Any for T where
T: 'static + ?Sized,
[src]
impl<T> Any for T where
T: 'static + ?Sized,
fn get_type_id(&self) -> TypeId
[src]
fn get_type_id(&self) -> TypeId
🔬 This is a nightly-only experimental API. (get_type_id
)
this method will likely be replaced by an associated static
Gets the TypeId
of self
. Read more
impl<E> SpecializationError for E
[src]
impl<E> SpecializationError for E
fn not_found<S, T>(trait_name: &'static str, method_name: &'static str) -> E where
T: ?Sized,
[src]
fn not_found<S, T>(trait_name: &'static str, method_name: &'static str) -> E where
T: ?Sized,
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
Create an error for a missing method specialization. Defaults to panicking with type, trait & method names. S
is the encoder/decoder state type, T
is the type being encoded/decoded, and the arguments are the names of the trait and method that should've been overridden. Read more
impl<T> Erased for T
[src]
impl<T> Erased for T
impl<T> Send for T where
T: ?Sized,
[src]
impl<T> Send for T where
T: ?Sized,
impl<T> Sync for T where
T: ?Sized,
[src]
impl<T> Sync for T where
T: ?Sized,
impl<T> Erased for T
impl<T> Erased for T
impl<T> MaybeResult for T
[src]
impl<T> MaybeResult for T
fn from_ok(x: T) -> T
[src]
fn from_ok(x: T) -> T
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
fn map_same<F>(self, f: F) -> T where
F: FnOnce(T) -> T,
[src]
fn map_same<F>(self, f: F) -> T where
F: FnOnce(T) -> T,
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
impl<'a, T> Captures for T where
T: ?Sized,
[src]
impl<'a, T> Captures for T where
T: ?Sized,