Enum rustc_mir::borrow_check::nll::region_infer::RegionTest [−][src]
pub enum RegionTest { IsOutlivedByAnyRegionIn(Vec<RegionVid>), IsOutlivedByAllRegionsIn(Vec<RegionVid>), Any(Vec<RegionTest>), All(Vec<RegionTest>), }
🔬 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 "test" that can be applied to some "subject region" 'x
. These are used to
describe type constraints. Tests do not presently affect the
region values that get inferred for each variable; they only
examine the results after inference. This means they can
conveniently include disjuction ("a or b must be true").
Variants
IsOutlivedByAnyRegionIn(Vec<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 subject region 'x
must by outlived by some region in
the given set of regions.
This test comes from e.g. a where clause like T: 'a + 'b
,
which implies that we know that T: 'a
and that T: 'b
. Therefore, if we are trying to prove that T: 'x
, we can
do so by showing that 'a: 'x
or 'b: 'x
.
IsOutlivedByAllRegionsIn(Vec<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 subject region 'x
must by outlived by all regions in
the given set of regions.
This test comes from e.g. a projection type like T = <u32 as Trait<'a, 'b>>::Foo
, which must outlive 'a
or 'b
, and
maybe both. Therefore we can prove that T: 'x
if we know
that 'a: 'x
and 'b: 'x
.
Any(Vec<RegionTest>)
🔬 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?
Any of the given tests are true.
This arises from projections, for which there are multiple ways to prove an outlives relationship.
All(Vec<RegionTest>)
🔬 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?
All of the given tests are true.
Trait Implementations
impl Clone for RegionTest
[src]
impl Clone for RegionTest
fn clone(&self) -> RegionTest
[src]
fn clone(&self) -> RegionTest
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
impl Debug for RegionTest
[src]
impl Debug for RegionTest
Auto Trait Implementations
impl Send for RegionTest
impl Send for RegionTest
impl Sync for RegionTest
impl Sync for RegionTest