Module rustc::traits
[−]
[src]
rustc_private
)Trait Resolution. See the Book for more.
Reexports
pub use self::SelectionError::*; |
pub use self::FulfillmentErrorCode::*; |
pub use self::Vtable::*; |
pub use self::ObligationCauseCode::*; |
pub use self::select::{MethodMatched, MethodAmbiguous, MethodDidNotMatch}; |
Modules
specialization_graph | [Unstable] |
Structs
DerivedObligationCause | [Unstable] |
EvaluationCache | [Unstable] |
FulfillmentContext |
[Unstable] The fulfillment context is used to drive trait resolution. It
consists of a list of obligations that must be (eventually)
satisfied. The job is to track which are satisfied, which yielded
errors, and which are still pending. At any point, users can call
|
FulfillmentError | [Unstable] |
GlobalFulfilledPredicates | [Unstable] |
MismatchedProjectionTypes | [Unstable] |
Normalized | [Unstable] |
Obligation |
[Unstable] An |
ObligationCause |
[Unstable] Why did we incur this obligation? Used for error reporting. |
OverlapError |
[Unstable] Information pertinent to an overlapping impl error. |
RegionObligation | [Unstable] |
SelectionCache | [Unstable] |
SelectionContext | [Unstable] |
SpecializesCache | [Unstable] |
SupertraitDefIds | [Unstable] |
TraitErrorKey | [Unstable] |
VtableBuiltinData | [Unstable] |
VtableClosureData | [Unstable] |
VtableDefaultImplData | [Unstable] |
VtableFnPointerData | [Unstable] |
VtableImplData |
[Unstable] Identifies a particular impl in the source, along with a set of
substitutions from the impl's type/lifetime parameters. The
|
VtableObjectData |
[Unstable] A vtable for some object-safe trait |
Enums
FulfillmentErrorCode | [Unstable] |
MethodMatchResult | [Unstable] |
MethodMatchedData | [Unstable] |
MethodViolationCode |
[Unstable] Reasons a method might not be object-safe. |
ObjectSafetyViolation | [Unstable] |
ObligationCauseCode | [Unstable] |
OrphanCheckErr | [Unstable] |
ProjectionMode |
[Unstable] Depending on the stage of compilation, we want projection to be more or less conservative. |
SelectionError | [Unstable] |
Vtable |
[Unstable] Given the successful resolution of an obligation, the |
Functions
elaborate_predicates | [Unstable] |
fully_normalize | [Unstable] |
normalize |
[Unstable] Normalizes any associated type projections in |
normalize_param_env_or_error |
[Unstable] Normalizes the parameter environment, reporting errors if they occur. |
orphan_check |
[Unstable] Checks the coherence orphan rules. |
overlapping_impls |
[Unstable] If there are types that satisfy both impls, returns a suitably-freshened
|
predicates_for_generics |
[Unstable] Creates predicate obligations from the generic bounds. |
specializes |
[Unstable] Is impl1 a specialization of impl2? |
supertrait_def_ids | [Unstable] |
supertraits | [Unstable] |
transitive_bounds | [Unstable] |
translate_substs |
[Unstable] Given a subst for the requested impl, translate it to a subst
appropriate for the actual item definition (whether it be in that impl,
a parent impl, or the trait).
When we have selected one impl, but are actually using item definitions from
a parent impl providing a default, we need a way to translate between the
type parameters of the two impls. Here the |
type_known_to_meet_builtin_bound |
[Unstable] Determines whether the type |
Type Definitions
Obligations | [Unstable] |
PredicateObligation | [Unstable] |
PredicateObligations | [Unstable] |
Selection | [Unstable] |
SelectionResult |
[Unstable] When performing resolution, it is typically the case that there can be one of three outcomes: |
Supertraits | [Unstable] |
TraitObligation | [Unstable] |
TraitObligations | [Unstable] |