pub trait TypeErrCtxtExt<'tcx> {
Show 26 methods fn suggest_restricting_param_bound(
        &self,
        err: &mut Diagnostic,
        trait_pred: PolyTraitPredicate<'tcx>,
        associated_item: Option<(&'static str, Ty<'tcx>)>,
        body_id: HirId
    ); fn suggest_dereferences(
        &self,
        obligation: &PredicateObligation<'tcx>,
        err: &mut Diagnostic,
        trait_pred: PolyTraitPredicate<'tcx>
    ) -> bool; fn get_closure_name(
        &self,
        def_id: DefId,
        err: &mut Diagnostic,
        msg: &str
    ) -> Option<Symbol>; fn suggest_fn_call(
        &self,
        obligation: &PredicateObligation<'tcx>,
        err: &mut Diagnostic,
        trait_pred: PolyTraitPredicate<'tcx>
    ) -> bool; fn suggest_add_reference_to_arg(
        &self,
        obligation: &PredicateObligation<'tcx>,
        err: &mut Diagnostic,
        trait_pred: PolyTraitPredicate<'tcx>,
        has_custom_message: bool
    ) -> bool; fn suggest_borrowing_for_object_cast(
        &self,
        err: &mut Diagnostic,
        obligation: &PredicateObligation<'tcx>,
        self_ty: Ty<'tcx>,
        object_ty: Ty<'tcx>
    ); fn suggest_remove_reference(
        &self,
        obligation: &PredicateObligation<'tcx>,
        err: &mut Diagnostic,
        trait_pred: PolyTraitPredicate<'tcx>
    ) -> bool; fn suggest_remove_await(
        &self,
        obligation: &PredicateObligation<'tcx>,
        err: &mut Diagnostic
    ); fn suggest_change_mut(
        &self,
        obligation: &PredicateObligation<'tcx>,
        err: &mut Diagnostic,
        trait_pred: PolyTraitPredicate<'tcx>
    ); fn suggest_semicolon_removal(
        &self,
        obligation: &PredicateObligation<'tcx>,
        err: &mut Diagnostic,
        span: Span,
        trait_pred: PolyTraitPredicate<'tcx>
    ) -> bool; fn return_type_span(
        &self,
        obligation: &PredicateObligation<'tcx>
    ) -> Option<Span>; fn suggest_impl_trait(
        &self,
        err: &mut Diagnostic,
        span: Span,
        obligation: &PredicateObligation<'tcx>,
        trait_pred: PolyTraitPredicate<'tcx>
    ) -> bool; fn point_at_returns_when_relevant(
        &self,
        err: &mut Diagnostic,
        obligation: &PredicateObligation<'tcx>
    ); fn report_closure_arg_mismatch(
        &self,
        span: Span,
        found_span: Option<Span>,
        found: PolyTraitRef<'tcx>,
        expected: PolyTraitRef<'tcx>,
        cause: &ObligationCauseCode<'tcx>,
        found_node: Option<Node<'_>>
    ) -> DiagnosticBuilder<'tcx, ErrorGuaranteed>; fn note_conflicting_closure_bounds(
        &self,
        cause: &ObligationCauseCode<'tcx>,
        err: &mut DiagnosticBuilder<'tcx, ErrorGuaranteed>
    ); fn suggest_fully_qualified_path(
        &self,
        err: &mut Diagnostic,
        item_def_id: DefId,
        span: Span,
        trait_ref: DefId
    ); fn maybe_note_obligation_cause_for_async_await(
        &self,
        err: &mut Diagnostic,
        obligation: &PredicateObligation<'tcx>
    ) -> bool; fn note_obligation_cause_for_async_await(
        &self,
        err: &mut Diagnostic,
        interior_or_upvar_span: GeneratorInteriorOrUpvar,
        is_async: bool,
        outer_generator: Option<DefId>,
        trait_pred: TraitPredicate<'tcx>,
        target_ty: Ty<'tcx>,
        typeck_results: Option<&TypeckResults<'tcx>>,
        obligation: &PredicateObligation<'tcx>,
        next_code: Option<&ObligationCauseCode<'tcx>>
    ); fn note_obligation_cause_code<T>(
        &self,
        err: &mut Diagnostic,
        predicate: T,
        param_env: ParamEnv<'tcx>,
        cause_code: &ObligationCauseCode<'tcx>,
        obligated_types: &mut Vec<Ty<'tcx>>,
        seen_requirements: &mut FxHashSet<DefId>
    )
    where
        T: ToPredicate<'tcx>
; fn suggest_await_before_try(
        &self,
        err: &mut Diagnostic,
        obligation: &PredicateObligation<'tcx>,
        trait_pred: PolyTraitPredicate<'tcx>,
        span: Span
    ); fn suggest_floating_point_literal(
        &self,
        obligation: &PredicateObligation<'tcx>,
        err: &mut Diagnostic,
        trait_ref: &PolyTraitRef<'tcx>
    ); fn suggest_derive(
        &self,
        obligation: &PredicateObligation<'tcx>,
        err: &mut Diagnostic,
        trait_pred: PolyTraitPredicate<'tcx>
    ); fn suggest_dereferencing_index(
        &self,
        obligation: &PredicateObligation<'tcx>,
        err: &mut Diagnostic,
        trait_pred: PolyTraitPredicate<'tcx>
    ); fn note_function_argument_obligation(
        &self,
        arg_hir_id: HirId,
        err: &mut Diagnostic,
        parent_code: &ObligationCauseCode<'tcx>,
        param_env: ParamEnv<'tcx>,
        predicate: Predicate<'tcx>,
        call_hir_id: HirId
    ); fn point_at_chain(
        &self,
        expr: &Expr<'_>,
        typeck_results: &TypeckResults<'tcx>,
        type_diffs: Vec<TypeError<'tcx>>,
        param_env: ParamEnv<'tcx>,
        err: &mut Diagnostic
    ); fn probe_assoc_types_at_expr(
        &self,
        type_diffs: &[TypeError<'tcx>],
        span: Span,
        prev_ty: Ty<'tcx>,
        body_id: HirId,
        param_env: ParamEnv<'tcx>
    ) -> Vec<Option<(Span, (DefId, Ty<'tcx>))>>;
}

Required Methods§

Suggest to await before try: future? => future.await?

Implementors§