Module rustc_trans::middle::traitsUnstable
[-] [+]
[src]
Trait Resolution. See the Book for more.
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 | |
| SupertraitDefIds | |
| VtableBuiltinData | |
| VtableDefaultImplData | |
| 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 | |
| is_vtable_safe_method | We say a method is vtable safe if it can be invoked on a trait
object. Note that object-safe traits can have some
non-vtable-safe methods, so long as they require |
| normalize | Normalizes any associated type projections in |
| normalize_param_env_or_error | Normalizes the parameter environment, reporting errors if they occur. |
| 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 | |
| report_overflow_error | Reports that an overflow has occurred and halts compilation. We halt compilation unconditionally because it is important that overflows never be masked -- they basically represent computations whose result could not be truly determined and thus we can't say if the program type checks or not -- and they are unusual occurrences in any case. |
| suggest_new_overflow_limit | |
| supertrait_def_ids | |
| 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 | |
| Supertraits | |
| TraitObligation | |
| TraitObligations |