Module rustc::middle::traitsUnstable
[-] [+]
[src]
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}; |
Structs
DerivedObligationCause | |
FulfillmentContext | 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 | |
MismatchedProjectionTypes | |
Normalized | |
Obligation | An |
ObligationCause | Why did we incur this obligation? Used for error reporting. |
RegionObligation | |
SelectionCache | |
SelectionContext | |
Supertraits | A filter around the |
VtableBuiltinData | |
VtableImplData | Identifies a particular impl in the source, along with a set of
substitutions from the impl's type/lifetime parameters. The
|
VtableObjectData | A vtable for some object-safe trait |
Enums
FulfillmentErrorCode | |
MethodMatchResult | |
MethodMatchedData | |
MethodViolationCode | Reasons a method might not be object-safe. |
ObjectSafetyViolation | |
ObligationCauseCode | |
OrphanCheckErr | |
SelectionError | |
Vtable | Given the successful resolution of an obligation, the |
Functions
elaborate_predicates | |
evaluate_builtin_bound | Determines whether the type |
fully_normalize | |
get_vtable_index_of_object_method | Given an object of type |
is_object_safe | |
normalize | Normalizes any associated type projections in |
normalize_param_env | |
normalize_param_env_or_error | |
object_safety_violations | |
orphan_check | Checks the coherence orphan rules. |
overlapping_impls | True if there exist types that satisfy both of the two given impls. |
predicates_for_generics | Creates predicate obligations from the generic bounds. |
report_fulfillment_errors | |
suggest_new_overflow_limit | |
supertraits | |
trait_ref_for_builtin_bound | |
transitive_bounds | |
type_known_to_meet_builtin_bound | |
upcast | Cast a trait reference into a reference to one of its super
traits; returns |
Type Definitions
Obligations | |
PredicateObligation | |
PredicateObligations | |
Selection | |
SelectionResult | When performing resolution, it is typically the case that there can be one of three outcomes: |
TraitObligation | |
TraitObligations |