Module rustc_lint::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 |