Expand description
Candidate assembly.
The selection process begins by examining all in-scope impls, caller obligations, and so forth and assembling a list of candidates. See the rustc dev guide for more details.
Re-exportsยง
use std::ops::ControlFlow;๐use hir::def_id::DefId;๐use rustc_attr_ir::lang_items::LangItem;๐use rustc_data_structures::fx::FxHashSet;๐use rustc_data_structures::fx::FxIndexSet;๐use rustc_hir as hir;๐use rustc_hir::CoroutineDesugaring;๐use rustc_hir::CoroutineKind;๐use rustc_infer::traits::Obligation;๐use rustc_infer::traits::PolyTraitObligation;๐use rustc_infer::traits::PredicateObligation;๐use rustc_infer::traits::SelectionError;๐use rustc_middle::ty::fast_reject::DeepRejectCtxt;๐use rustc_middle::ty;๐use rustc_middle::ty::CallerBoundsIterator;๐use rustc_middle::ty::ExistentialPredicate;๐use rustc_middle::ty::FieldInfo;๐use rustc_middle::ty::IncludeSizedImplicitBounds;๐use rustc_middle::ty::SizedTraitKind;๐use rustc_middle::ty::TraitRef;๐use rustc_middle::ty::Ty;๐use rustc_middle::ty::TypeVisitableExt;๐use rustc_middle::ty::elaborate;๐use rustc_span::DUMMY_SP;๐use rustc_span::bug;๐use rustc_span::span_bug;๐use tracing::debug;๐use tracing::instrument;๐use tracing::instrument;๐use tracing::trace;๐use super::SelectionCandidateSet;๐use super::SelectionContext;๐use super::TraitObligationStack;๐use crate::traits::query::evaluate_obligation::InferCtxtExt;๐use crate::traits::util;๐use super::SelectionCandidate::*;๐