[−][src]Trait rustc_trait_selection::traits::error_reporting::InferCtxtPrivExt

pub(in traits::error_reporting) trait InferCtxtPrivExt<'tcx> {
    pub(in traits::error_reporting) fn error_implies(
        &self,
        cond: Predicate<'tcx>,
        error: Predicate<'tcx>
    ) -> bool;
pub(in traits::error_reporting) fn report_fulfillment_error(
        &self,
        error: &FulfillmentError<'tcx>,
        body_id: Option<BodyId>,
        fallback_has_occurred: bool
    );
pub(in traits::error_reporting) fn report_projection_error(
        &self,
        obligation: &PredicateObligation<'tcx>,
        error: &MismatchedProjectionTypes<'tcx>
    );
pub(in traits::error_reporting) fn fuzzy_match_tys(
        &self,
        a: Ty<'tcx>,
        b: Ty<'tcx>
    ) -> bool;
pub(in traits::error_reporting) fn describe_generator(
        &self,
        body_id: BodyId
    ) -> Option<&'static str>;
pub(in traits::error_reporting) fn find_similar_impl_candidates(
        &self,
        trait_ref: PolyTraitRef<'tcx>
    ) -> Vec<TraitRef<'tcx>>;
pub(in traits::error_reporting) fn report_similar_impl_candidates(
        &self,
        impl_candidates: Vec<TraitRef<'tcx>>,
        err: &mut DiagnosticBuilder<'_>
    );
pub(in traits::error_reporting) fn get_parent_trait_ref(
        &self,
        code: &ObligationCauseCode<'tcx>
    ) -> Option<(String, Option<Span>)>;
pub(in traits::error_reporting) fn note_version_mismatch(
        &self,
        err: &mut DiagnosticBuilder<'_>,
        trait_ref: &PolyTraitRef<'tcx>
    );
pub(in traits::error_reporting) fn mk_trait_obligation_with_new_self_ty(
        &self,
        param_env: ParamEnv<'tcx>,
        trait_ref: PolyTraitRef<'tcx>,
        new_self_ty: Ty<'tcx>
    ) -> PredicateObligation<'tcx>;
pub(in traits::error_reporting) fn maybe_report_ambiguity(
        &self,
        obligation: &PredicateObligation<'tcx>,
        body_id: Option<BodyId>
    );
pub(in traits::error_reporting) fn predicate_can_apply(
        &self,
        param_env: ParamEnv<'tcx>,
        pred: PolyTraitRef<'tcx>
    ) -> bool;
pub(in traits::error_reporting) fn note_obligation_cause(
        &self,
        err: &mut DiagnosticBuilder<'tcx>,
        obligation: &PredicateObligation<'tcx>
    );
pub(in traits::error_reporting) fn suggest_unsized_bound_if_applicable(
        &self,
        err: &mut DiagnosticBuilder<'tcx>,
        obligation: &PredicateObligation<'tcx>
    );
pub(in traits::error_reporting) fn is_recursive_obligation(
        &self,
        obligated_types: &mut Vec<&TyS<'tcx>>,
        cause_code: &ObligationCauseCode<'tcx>
    ) -> bool; }

Required methods

pub(in traits::error_reporting) fn error_implies(
    &self,
    cond: Predicate<'tcx>,
    error: Predicate<'tcx>
) -> bool
[src]

pub(in traits::error_reporting) fn report_fulfillment_error(
    &self,
    error: &FulfillmentError<'tcx>,
    body_id: Option<BodyId>,
    fallback_has_occurred: bool
)
[src]

pub(in traits::error_reporting) fn report_projection_error(
    &self,
    obligation: &PredicateObligation<'tcx>,
    error: &MismatchedProjectionTypes<'tcx>
)
[src]

pub(in traits::error_reporting) fn fuzzy_match_tys(
    &self,
    a: Ty<'tcx>,
    b: Ty<'tcx>
) -> bool
[src]

pub(in traits::error_reporting) fn describe_generator(
    &self,
    body_id: BodyId
) -> Option<&'static str>
[src]

pub(in traits::error_reporting) fn find_similar_impl_candidates(
    &self,
    trait_ref: PolyTraitRef<'tcx>
) -> Vec<TraitRef<'tcx>>
[src]

pub(in traits::error_reporting) fn report_similar_impl_candidates(
    &self,
    impl_candidates: Vec<TraitRef<'tcx>>,
    err: &mut DiagnosticBuilder<'_>
)
[src]

pub(in traits::error_reporting) fn get_parent_trait_ref(
    &self,
    code: &ObligationCauseCode<'tcx>
) -> Option<(String, Option<Span>)>
[src]

Gets the parent trait chain start

pub(in traits::error_reporting) fn note_version_mismatch(
    &self,
    err: &mut DiagnosticBuilder<'_>,
    trait_ref: &PolyTraitRef<'tcx>
)
[src]

If the Self type of the unsatisfied trait trait_ref implements a trait with the same path as trait_ref, a help message about a probable version mismatch is added to err

pub(in traits::error_reporting) fn mk_trait_obligation_with_new_self_ty(
    &self,
    param_env: ParamEnv<'tcx>,
    trait_ref: PolyTraitRef<'tcx>,
    new_self_ty: Ty<'tcx>
) -> PredicateObligation<'tcx>
[src]

Creates a PredicateObligation with new_self_ty replacing the existing type in the trait_ref.

For this to work, new_self_ty must have no escaping bound variables.

pub(in traits::error_reporting) fn maybe_report_ambiguity(
    &self,
    obligation: &PredicateObligation<'tcx>,
    body_id: Option<BodyId>
)
[src]

pub(in traits::error_reporting) fn predicate_can_apply(
    &self,
    param_env: ParamEnv<'tcx>,
    pred: PolyTraitRef<'tcx>
) -> bool
[src]

pub(in traits::error_reporting) fn note_obligation_cause(
    &self,
    err: &mut DiagnosticBuilder<'tcx>,
    obligation: &PredicateObligation<'tcx>
)
[src]

pub(in traits::error_reporting) fn suggest_unsized_bound_if_applicable(
    &self,
    err: &mut DiagnosticBuilder<'tcx>,
    obligation: &PredicateObligation<'tcx>
)
[src]

pub(in traits::error_reporting) fn is_recursive_obligation(
    &self,
    obligated_types: &mut Vec<&TyS<'tcx>>,
    cause_code: &ObligationCauseCode<'tcx>
) -> bool
[src]

Loading content...

Implementors

impl<'a, 'tcx> InferCtxtPrivExt<'tcx> for InferCtxt<'a, 'tcx>[src]

pub(in traits::error_reporting) fn get_parent_trait_ref(
    &self,
    code: &ObligationCauseCode<'tcx>
) -> Option<(String, Option<Span>)>
[src]

Gets the parent trait chain start

pub(in traits::error_reporting) fn note_version_mismatch(
    &self,
    err: &mut DiagnosticBuilder<'_>,
    trait_ref: &PolyTraitRef<'tcx>
)
[src]

If the Self type of the unsatisfied trait trait_ref implements a trait with the same path as trait_ref, a help message about a probable version mismatch is added to err

pub(in traits::error_reporting) fn predicate_can_apply(
    &self,
    param_env: ParamEnv<'tcx>,
    pred: PolyTraitRef<'tcx>
) -> bool
[src]

Returns true if the trait predicate may apply for some assignment to the type parameters.

Loading content...