Trait rustc_trait_selection::traits::query::evaluate_obligation::InferCtxtExt[−][src]

pub trait InferCtxtExt<'tcx> {
    fn predicate_may_hold(&self, obligation: &PredicateObligation<'tcx>) -> bool;
fn predicate_must_hold_considering_regions(
        &self,
        obligation: &PredicateObligation<'tcx>
    ) -> bool;
fn predicate_must_hold_modulo_regions(
        &self,
        obligation: &PredicateObligation<'tcx>
    ) -> bool;
fn evaluate_obligation(
        &self,
        obligation: &PredicateObligation<'tcx>
    ) -> Result<EvaluationResult, OverflowError>;
fn evaluate_obligation_no_overflow(
        &self,
        obligation: &PredicateObligation<'tcx>
    ) -> EvaluationResult; }

Required methods

Implementors

Evaluates whether the predicate can be satisfied (by any means) in the given ParamEnv.

Evaluates whether the predicate can be satisfied in the given ParamEnv, and returns false if not certain. However, this is not entirely accurate if inference variables are involved.

This version may conservatively fail when outlives obligations are required.

Evaluates whether the predicate can be satisfied in the given ParamEnv, and returns false if not certain. However, this is not entirely accurate if inference variables are involved.

This version ignores all outlives constraints.

Evaluate a given predicate, capturing overflow and propagating it back.