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

fn predicate_may_hold(&self, obligation: &PredicateObligation<'tcx>) -> bool[src]

fn predicate_must_hold_considering_regions(
    &self,
    obligation: &PredicateObligation<'tcx>
) -> bool
[src]

fn predicate_must_hold_modulo_regions(
    &self,
    obligation: &PredicateObligation<'tcx>
) -> bool
[src]

fn evaluate_obligation(
    &self,
    obligation: &PredicateObligation<'tcx>
) -> Result<EvaluationResult, OverflowError>
[src]

fn evaluate_obligation_no_overflow(
    &self,
    obligation: &PredicateObligation<'tcx>
) -> EvaluationResult
[src]

Loading content...

Implementors

impl<'cx, 'tcx> InferCtxtExt<'tcx> for InferCtxt<'cx, 'tcx>[src]

fn predicate_may_hold(&self, obligation: &PredicateObligation<'tcx>) -> bool[src]

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

fn predicate_must_hold_considering_regions(
    &self,
    obligation: &PredicateObligation<'tcx>
) -> bool
[src]

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.

fn predicate_must_hold_modulo_regions(
    &self,
    obligation: &PredicateObligation<'tcx>
) -> bool
[src]

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.

fn evaluate_obligation(
    &self,
    obligation: &PredicateObligation<'tcx>
) -> Result<EvaluationResult, OverflowError>
[src]

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

Loading content...