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 - IfExpression
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
nested
vector 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
ImplSource
indicates 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.Foo
inOption<Foo>
).
Type Aliases§
- Selection
Result - When performing resolution, it is typically the case that there can be one of three outcomes: