Module traits

Source
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§

DerivedCause
DerivedHostCause
IfExpressionCause
ImplDerivedCause
ImplDerivedHostCause
ImplSourceUserDefinedData
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.
MatchExpressionArmCause
ObligationCause
The reason why we incurred this obligation; used for error reporting.
ObligationCauseCodeHandle
A compact form of ObligationCauseCode.
PatternOriginExpr
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.
SignatureMismatchData

Enums§

BuiltinImplSource
CodegenObligationError
These are the error cases for codegen_select_candidate.
DynCompatibilityViolation
DynCompatibilityViolationSolution
ImplSource
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.
MethodViolationCode
Reasons a method might not be dyn-compatible.
ObligationCauseCode
SelectionError
WellFormedLoc
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 in Option<Foo>).

Type Aliases§

SelectionResult
When performing resolution, it is typically the case that there can be one of three outcomes: