Struct rustc_trait_selection::traits::wf::WfPredicates [−][src]
struct WfPredicates<'a, 'tcx> {
infcx: &'a InferCtxt<'a, 'tcx>,
param_env: ParamEnv<'tcx>,
body_id: HirId,
span: Span,
out: Vec<PredicateObligation<'tcx>>,
recursion_depth: usize,
item: Option<&'tcx Item<'tcx>>,
}Fields
infcx: &'a InferCtxt<'a, 'tcx>param_env: ParamEnv<'tcx>body_id: HirIdspan: Spanout: Vec<PredicateObligation<'tcx>>recursion_depth: usizeitem: Option<&'tcx Item<'tcx>>Implementations
Pushes the obligations required for trait_ref to be WF into self.out.
Pushes the obligations required for trait_ref::Item to be WF
into self.out.
Pushes all the predicates needed to validate that ty is WF into out.
fn nominal_obligations(
&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<'a, 'tcx> !RefUnwindSafe for WfPredicates<'a, 'tcx>
impl<'a, 'tcx> !Send for WfPredicates<'a, 'tcx>
impl<'a, 'tcx> !Sync for WfPredicates<'a, 'tcx>
impl<'a, 'tcx> Unpin for WfPredicates<'a, 'tcx> where
'tcx: 'a,
impl<'a, 'tcx> !UnwindSafe for WfPredicates<'a, 'tcx>
Blanket Implementations
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