Module rustc_middle::traits [−][src]
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;pub use self::ObligationCauseCode::*;Modules
Types required for Chalk-related queries
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.
Candidate selection. See the rustc dev guide for more information on how this works.
Structs
A chalk environment and goal.
Identifies a particular impl in the source, along with a set of
substitutions from the impl’s type/lifetime parameters. The
nested vector corresponds to the nested obligations attached to
the impl’s type parameters.
The reason why we incurred this obligation; used for error reporting.
Enums
Given the successful resolution of an obligation, the ImplSource
indicates where the impl comes from.
Reasons a method might not be object-safe.
Depending on the stage of compilation, we want projection to be more or less conservative.
Constants
Type Definitions
When performing resolution, it is typically the case that there can be one of three outcomes: