Module rustc::traits::select [−][src]
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
See rustc guide for more info on how this works.
Re-exports
use self::SelectionCandidate::*; |
use self::EvaluationResult::*; |
use super::coherence; |
use super::coherence::Conflict; |
use super::DerivedObligationCause; |
use super::IntercrateMode; |
use super::TraitQueryMode; |
use super::project; |
use super::project::normalize_with_depth; |
use super::project::Normalized; |
use super::project::ProjectionCacheKey; |
use super::PredicateObligation; |
use super::TraitObligation; |
use super::ObligationCause; |
use super::ObligationCauseCode; |
use super::BuiltinDerivedObligation; |
use super::ImplDerivedObligation; |
use super::SelectionError; |
use super::Unimplemented; |
use super::OutputTypeParameterMismatch; |
use super::Overflow; |
use super::ObjectCastObligation; |
use super::Obligation; |
use super::TraitNotObjectSafe; |
use super::Selection; |
use super::SelectionResult; |
use super::VtableBuiltin; |
use super::VtableImpl; |
use super::VtableParam; |
use super::VtableClosure; |
use super::VtableGenerator; |
use super::VtableFnPointer; |
use super::VtableObject; |
use super::VtableAutoImpl; |
use super::VtableImplData; |
use super::VtableObjectData; |
use super::VtableBuiltinData; |
use super::VtableGeneratorData; |
use super::VtableClosureData; |
use super::VtableAutoImplData; |
use super::VtableFnPointerData; |
use super::util; |
use dep_graph::DepNodeIndex; |
use dep_graph::DepKind; |
use hir::def_id::DefId; |
use infer; |
use infer::InferCtxt; |
use infer::InferOk; |
use infer::TypeFreshener; |
use ty::subst::Kind; |
use ty::subst::Subst; |
use ty::subst::Substs; |
use ty; |
use ty::ToPredicate; |
use ty::ToPolyTraitRef; |
use ty::Ty; |
use ty::TyCtxt; |
use ty::TypeFoldable; |
use ty::fast_reject; |
use ty::relate::TypeRelation; |
use middle::lang_items; |
use mir::interpret::GlobalId; |
use rustc_data_structures::bitvec::BitVector; |
use std::iter; |
use std::cell::RefCell; |
use std::cmp; |
use std::fmt; |
use std::mem; |
use std::rc::Rc; |
use rustc_target::spec::abi::Abi; |
use hir; |
use util::nodemap::FxHashMap; |
use util::nodemap::FxHashSet; |
Structs
EvaluatedCandidate |
[ Experimental ]
|
EvaluationCache |
[ Experimental ]
|
OverflowError |
[ Experimental ] Indicates that trait evaluation caused overflow. |
SelectionCache |
[ Experimental ]
|
SelectionCandidateSet |
[ Experimental ]
|
SelectionContext |
[ Experimental ]
|
TraitObligationStack |
[ Experimental ]
|
TraitObligationStackList |
[ Experimental ]
|
WithDepNode |
[ Experimental ]
|
Enums
BuiltinImplConditions |
[ Experimental ] When does the builtin impl for |
EvaluationResult |
[ Experimental ] The result of trait evaluation. The order is important here as the evaluation of a list is the maximum of the evaluations. |
IntercrateAmbiguityCause |
[ Experimental ]
|
SelectionCandidate |
[ Experimental ] The selection process begins by considering all impls, where
clauses, and so forth that might resolve an obligation. Sometimes
we'll be able to say definitively that (e.g.) an impl does not
apply to the obligation: perhaps it is defined for |