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: