[−][src]Trait rustc_trait_selection::traits::query::type_op::TypeOp

pub trait TypeOp<'tcx>: Sized + Debug {
    type Output;
    pub fn fully_perform(
        self,
        infcx: &InferCtxt<'_, 'tcx>
    ) -> Fallible<(Self::Output, Option<Rc<QueryRegionConstraints<'tcx>>>)>; }

"Type ops" are used in NLL to perform some particular action and extract out the resulting region constraints (or an error if it cannot be completed).

Associated Types

type Output[src]

Loading content...

Required methods

pub fn fully_perform(
    self,
    infcx: &InferCtxt<'_, 'tcx>
) -> Fallible<(Self::Output, Option<Rc<QueryRegionConstraints<'tcx>>>)>
[src]

Processes the operation and all resulting obligations, returning the final result along with any region constraints (they will be given over to the NLL region solver).

Loading content...

Implementations on Foreign Types

impl<'tcx, Q> TypeOp<'tcx> for ParamEnvAnd<'tcx, Q> where
    Q: QueryTypeOp<'tcx>, 
[src]

type Output = Q::QueryResponse

Loading content...

Implementors

impl<'tcx, F, R, G> TypeOp<'tcx> for CustomTypeOp<F, G> where
    F: for<'a, 'cx> FnOnce(&'a InferCtxt<'cx, 'tcx>) -> Fallible<InferOk<'tcx, R>>,
    G: Fn() -> String, 
[src]

type Output = R

pub fn fully_perform(
    self,
    infcx: &InferCtxt<'_, 'tcx>
) -> Fallible<(Self::Output, Option<Rc<QueryRegionConstraints<'tcx>>>)>
[src]

Processes the operation and all resulting obligations, returning the final result along with any region constraints (they will be given over to the NLL region solver).

Loading content...