Struct rustc::ty::wf::WfPredicates [−][src]
struct WfPredicates<'a, 'gcx: 'a + 'tcx, 'tcx: 'a> { infcx: &'a InferCtxt<'a, 'gcx, 'tcx>, param_env: ParamEnv<'tcx>, body_id: NodeId, span: Span, out: Vec<PredicateObligation<'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?
Fields
infcx: &'a InferCtxt<'a, '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?
param_env: ParamEnv<'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?
body_id: NodeId
🔬 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?
span: Span
🔬 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?
out: Vec<PredicateObligation<'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<'a, 'gcx, 'tcx> WfPredicates<'a, 'gcx, 'tcx>
[src]
impl<'a, 'gcx, 'tcx> WfPredicates<'a, 'gcx, 'tcx>
fn cause(&mut self, code: ObligationCauseCode<'tcx>) -> ObligationCause<'tcx>
[src]
fn cause(&mut self, code: ObligationCauseCode<'tcx>) -> ObligationCause<'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 normalize(&mut self) -> Vec<PredicateObligation<'tcx>>
[src]
fn normalize(&mut self) -> Vec<PredicateObligation<'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 compute_trait_ref(
&mut self,
trait_ref: &TraitRef<'tcx>,
elaborate: Elaborate
)
[src]
fn compute_trait_ref(
&mut self,
trait_ref: &TraitRef<'tcx>,
elaborate: Elaborate
)
🔬 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?
Pushes the obligations required for trait_ref
to be WF into
self.out
.
fn compute_projection(&mut self, data: ProjectionTy<'tcx>)
[src]
fn compute_projection(&mut self, data: ProjectionTy<'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?
Pushes the obligations required for trait_ref::Item
to be WF
into self.out
.
fn compute_const(&mut self, constant: &'tcx Const<'tcx>)
[src]
fn compute_const(&mut self, constant: &'tcx Const<'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?
Pushes the obligations required for a constant value to be WF
into self.out
.
fn require_sized(&mut self, subty: Ty<'tcx>, cause: ObligationCauseCode<'tcx>)
[src]
fn require_sized(&mut self, subty: Ty<'tcx>, cause: ObligationCauseCode<'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 compute(&mut self, ty0: Ty<'tcx>) -> bool
[src]
fn compute(&mut self, ty0: Ty<'tcx>) -> 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?
Push new obligations into out
. Returns true if it was able
to generate all the predicates needed to validate that ty0
is WF. Returns false if ty0
is an unresolved type variable,
in which case we are not able to simplify at all.
fn nominal_obligations(
&mut self,
def_id: DefId,
substs: &Substs<'tcx>
) -> Vec<PredicateObligation<'tcx>>
[src]
fn nominal_obligations(
&mut self,
def_id: DefId,
substs: &Substs<'tcx>
) -> Vec<PredicateObligation<'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 from_object_ty(
&mut self,
ty: Ty<'tcx>,
data: Binder<&'tcx Slice<ExistentialPredicate<'tcx>>>,
region: Region<'tcx>
)
[src]
fn from_object_ty(
&mut self,
ty: Ty<'tcx>,
data: Binder<&'tcx Slice<ExistentialPredicate<'tcx>>>,
region: 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?
Auto Trait Implementations
impl<'a, 'gcx, 'tcx> !Send for WfPredicates<'a, 'gcx, 'tcx>
impl<'a, 'gcx, 'tcx> !Send for WfPredicates<'a, 'gcx, 'tcx>
impl<'a, 'gcx, 'tcx> !Sync for WfPredicates<'a, 'gcx, 'tcx>
impl<'a, 'gcx, 'tcx> !Sync for WfPredicates<'a, 'gcx, 'tcx>