Expand description
Trait Resolution. See the rustc dev guide for more information on how this works.
Re-exports§
pub use self::select::EvaluationCache;pub use self::select::EvaluationResult;pub use self::select::OverflowError;pub use self::select::SelectionCache;
Modules§
- query
 - Experimental types for the trait query interface. The methods
defined in this module are all based on canonicalization,
which makes a canonical query by replacing unbound inference
variables and regions, so that results can be reused more broadly.
The providers for the queries defined here can be found in
rustc_traits. - select
 - Candidate selection. See the rustc dev guide for more information on how this works.
 - solve
 - specialization_
graph  - structural_
impls 🔒 
Structs§
- Derived
Cause  - Derived
Host Cause  - Impl
Derived Cause  - Impl
Derived Host Cause  - Impl
Source User Defined Data  - Identifies a particular impl in the source, along with a set of
generic parameters from the impl’s type/lifetime parameters. The
nestedvector corresponds to the nested obligations attached to the impl’s type parameters. - Match
Expression ArmCause  - Obligation
Cause  - The reason why we incurred this obligation; used for error reporting.
 - Obligation
Cause Code Handle  - A compact form of 
ObligationCauseCode. - Pattern
Origin Expr  - Information about the origin expression of a pattern, relevant to diagnostics. Fields here refer to the scrutinee of a pattern. If the scrutinee isn’t given in the diagnostic, then this won’t exist.
 - Signature
Mismatch Data  
Enums§
- Builtin
Impl Source  - Codegen
Obligation Error  - These are the error cases for 
codegen_select_candidate. - DynCompatibility
Violation  - DynCompatibility
Violation Solution  - Impl
Source  - Given the successful resolution of an obligation, the 
ImplSourceindicates where the impl comes from. - IsConstable
 - Whether a value can be extracted into a const. Used for diagnostics around array repeat expressions.
 - Method
Violation Code  - Reasons a method might not be dyn-compatible.
 - Obligation
Cause Code  - Selection
Error  - Well
Formed Loc  - The ‘location’ at which we try to perform HIR-based wf checking.
This information is used to obtain an 
hir::Ty, which we can walk in order to obtain precise spans for any ‘nested’ types (e.g.FooinOption<Foo>). 
Type Aliases§
- Selection
Result  - When performing resolution, it is typically the case that there can be one of three outcomes: