Struct rustc_trait_selection::traits::wf::WfPredicates
source · struct WfPredicates<'tcx> {
tcx: TyCtxt<'tcx>,
param_env: ParamEnv<'tcx>,
body_id: HirId,
span: Span,
out: Vec<PredicateObligation<'tcx>>,
recursion_depth: usize,
item: Option<&'tcx Item<'tcx>>,
}
Fields
tcx: TyCtxt<'tcx>
param_env: ParamEnv<'tcx>
body_id: HirId
span: Span
out: Vec<PredicateObligation<'tcx>>
recursion_depth: usize
item: Option<&'tcx Item<'tcx>>
Implementations
sourceimpl<'tcx> WfPredicates<'tcx>
impl<'tcx> WfPredicates<'tcx>
fn tcx(&self) -> TyCtxt<'tcx>
fn cause(&self, code: ObligationCauseCode<'tcx>) -> ObligationCause<'tcx>
fn normalize(self, infcx: &InferCtxt<'_, 'tcx>) -> Vec<PredicateObligation<'tcx>>
sourcefn compute_trait_pred(
&mut self,
trait_pred: &TraitPredicate<'tcx>,
elaborate: Elaborate
)
fn compute_trait_pred(
&mut self,
trait_pred: &TraitPredicate<'tcx>,
elaborate: Elaborate
)
Pushes the obligations required for trait_ref
to be WF into self.out
.
sourcefn compute_projection(&mut self, data: ProjectionTy<'tcx>)
fn compute_projection(&mut self, data: ProjectionTy<'tcx>)
Pushes the obligations required for trait_ref::Item
to be WF
into self.out
.
fn require_sized(&mut self, subty: Ty<'tcx>, cause: ObligationCauseCode<'tcx>)
sourcefn compute(&mut self, arg: GenericArg<'tcx>)
fn compute(&mut self, arg: GenericArg<'tcx>)
Pushes all the predicates needed to validate that ty
is WF into out
.
fn nominal_obligations_inner(
&mut self,
def_id: DefId,
substs: SubstsRef<'tcx>,
remap_constness: bool
) -> Vec<PredicateObligation<'tcx>>
fn nominal_obligations(
&mut self,
def_id: DefId,
substs: SubstsRef<'tcx>
) -> Vec<PredicateObligation<'tcx>>
fn nominal_obligations_without_const(
&mut self,
def_id: DefId,
substs: SubstsRef<'tcx>
) -> Vec<PredicateObligation<'tcx>>
fn from_object_ty(
&mut self,
ty: Ty<'tcx>,
data: &'tcx List<Binder<'tcx, ExistentialPredicate<'tcx>>>,
region: Region<'tcx>
)
Auto Trait Implementations
impl<'tcx> !RefUnwindSafe for WfPredicates<'tcx>
impl<'tcx> !Send for WfPredicates<'tcx>
impl<'tcx> !Sync for WfPredicates<'tcx>
impl<'tcx> Unpin for WfPredicates<'tcx>
impl<'tcx> !UnwindSafe for WfPredicates<'tcx>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Layout
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 72 bytes