Trait rustc::traits::query::type_op::TypeOp [−][src]
pub trait TypeOp<'gcx, 'tcx>: Sized + Debug { type Output; fn fully_perform(
self,
infcx: &InferCtxt<'_, 'gcx, 'tcx>
) -> Fallible<(Self::Output, Option<Rc<Vec<QueryRegionConstraint<'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?
"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
🔬 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?
Required Methods
fn fully_perform(
self,
infcx: &InferCtxt<'_, 'gcx, 'tcx>
) -> Fallible<(Self::Output, Option<Rc<Vec<QueryRegionConstraint<'tcx>>>>)>
self,
infcx: &InferCtxt<'_, 'gcx, 'tcx>
) -> Fallible<(Self::Output, Option<Rc<Vec<QueryRegionConstraint<'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?
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).
Implementors
impl<'gcx, 'tcx, F, R, G> TypeOp<'gcx, 'tcx> for CustomTypeOp<F, G> where
F: for<'a, 'cx> FnOnce(&'a InferCtxt<'cx, 'gcx, 'tcx>) -> Fallible<InferOk<'tcx, R>>,
G: Fn() -> String, type Output = R;impl<'gcx: 'tcx, 'tcx, Q> TypeOp<'gcx, 'tcx> for ParamEnvAnd<'tcx, Q> where
Q: QueryTypeOp<'gcx, 'tcx>, type Output = Q::QueryResult;