Struct rustc::infer::sub::Sub [−][src]
pub struct Sub<'combine, 'infcx: 'combine, 'gcx: 'infcx + 'tcx, 'tcx: 'infcx> { fields: &'combine mut CombineFields<'infcx, 'gcx, 'tcx>, a_is_expected: 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?
Ensures a
is made a subtype of b
. Returns a
on success.
Fields
fields: &'combine mut CombineFields<'infcx, 'gcx, '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?
a_is_expected: 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?
Methods
impl<'combine, 'infcx, 'gcx, 'tcx> Sub<'combine, 'infcx, 'gcx, 'tcx>
[src]
impl<'combine, 'infcx, 'gcx, 'tcx> Sub<'combine, 'infcx, 'gcx, 'tcx>
pub fn new(
f: &'combine mut CombineFields<'infcx, 'gcx, 'tcx>,
a_is_expected: bool
) -> Sub<'combine, 'infcx, 'gcx, 'tcx>
[src]
pub fn new(
f: &'combine mut CombineFields<'infcx, 'gcx, 'tcx>,
a_is_expected: bool
) -> Sub<'combine, 'infcx, 'gcx, '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?
fn with_expected_switched<R, F: FnOnce(&mut Self) -> R>(&mut self, f: F) -> R
[src]
fn with_expected_switched<R, F: FnOnce(&mut Self) -> R>(&mut self, f: F) -> R
🔬 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?
Trait Implementations
impl<'combine, 'infcx, 'gcx, 'tcx> TypeRelation<'infcx, 'gcx, 'tcx> for Sub<'combine, 'infcx, 'gcx, 'tcx>
[src]
impl<'combine, 'infcx, 'gcx, 'tcx> TypeRelation<'infcx, 'gcx, 'tcx> for Sub<'combine, 'infcx, 'gcx, 'tcx>
fn tag(&self) -> &'static str
[src]
fn tag(&self) -> &'static str
🔬 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 a static string we can use for printouts.
fn tcx(&self) -> TyCtxt<'infcx, 'gcx, 'tcx>
[src]
fn tcx(&self) -> TyCtxt<'infcx, 'gcx, '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?
fn a_is_expected(&self) -> bool
[src]
fn a_is_expected(&self) -> 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?
Returns true if the value a
is the "expected" type in the relation. Just affects error messages. Read more
fn with_cause<F, R>(&mut self, cause: Cause, f: F) -> R where
F: FnOnce(&mut Self) -> R,
[src]
fn with_cause<F, R>(&mut self, cause: Cause, f: F) -> R where
F: FnOnce(&mut Self) -> R,
🔬 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 relate_with_variance<T: Relate<'tcx>>(
&mut self,
variance: Variance,
a: &T,
b: &T
) -> RelateResult<'tcx, T>
[src]
fn relate_with_variance<T: Relate<'tcx>>(
&mut self,
variance: Variance,
a: &T,
b: &T
) -> RelateResult<'tcx, 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?
Switch variance for the purpose of relating a
and b
.
fn tys(&mut self, a: Ty<'tcx>, b: Ty<'tcx>) -> RelateResult<'tcx, Ty<'tcx>>
[src]
fn tys(&mut self, a: Ty<'tcx>, b: Ty<'tcx>) -> RelateResult<'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?
fn regions(
&mut self,
a: Region<'tcx>,
b: Region<'tcx>
) -> RelateResult<'tcx, Region<'tcx>>
[src]
fn regions(
&mut self,
a: Region<'tcx>,
b: Region<'tcx>
) -> RelateResult<'tcx, 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?
fn binders<T>(
&mut self,
a: &Binder<T>,
b: &Binder<T>
) -> RelateResult<'tcx, Binder<T>> where
T: Relate<'tcx>,
[src]
fn binders<T>(
&mut self,
a: &Binder<T>,
b: &Binder<T>
) -> RelateResult<'tcx, Binder<T>> where
T: Relate<'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?
fn relate<T: Relate<'tcx>>(&mut self, a: &T, b: &T) -> RelateResult<'tcx, T>
[src]
fn relate<T: Relate<'tcx>>(&mut self, a: &T, b: &T) -> RelateResult<'tcx, 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?
Generic relation routine suitable for most anything.
fn relate_item_substs(
&mut self,
item_def_id: DefId,
a_subst: &'tcx Substs<'tcx>,
b_subst: &'tcx Substs<'tcx>
) -> RelateResult<'tcx, &'tcx Substs<'tcx>>
[src]
fn relate_item_substs(
&mut self,
item_def_id: DefId,
a_subst: &'tcx Substs<'tcx>,
b_subst: &'tcx Substs<'tcx>
) -> RelateResult<'tcx, &'tcx Substs<'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?
Relate the two substitutions for the given item. The default is to look up the variance for the item and proceed accordingly. Read more