Module rustc::traits
[−]
[src]
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Trait Resolution. See rustc guide for more info on how this works.
Re-exports
pub use self::SelectionError::*; |
pub use self::FulfillmentErrorCode::*; |
pub use self::Vtable::*; |
pub use self::ObligationCauseCode::*; |
Modules
| error_reporting |
[ Experimental ]
|
| query |
[ Experimental ] 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
|
| specialization_graph |
[ Experimental ]
|
| trans |
[ Experimental ]
|
Structs
| DerivedObligationCause |
[ Experimental ]
|
| EvaluationCache |
[ Experimental ]
|
| FulfillmentContext |
[ Experimental ] 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 |
[ Experimental ]
|
| MismatchedProjectionTypes |
[ Experimental ]
|
| Normalized |
[ Experimental ]
|
| Obligation |
[ Experimental ] An |
| ObligationCause |
[ Experimental ] Why did we incur this obligation? Used for error reporting. |
| OnUnimplementedDirective |
[ Experimental ]
|
| OnUnimplementedNote |
[ Experimental ]
|
| OverlapError |
[ Experimental ] Information pertinent to an overlapping impl error. |
| OverlapResult |
[ Experimental ]
|
| PendingPredicateObligation |
[ Experimental ]
|
| ProjectionCache |
[ Experimental ] The projection cache. Unlike the standard caches, this can include infcx-dependent type variables - therefore, we have to roll the cache back each time we roll a snapshot back, to avoid assumptions on yet-unresolved inference variables. Types with skolemized regions also have to be removed when the respective snapshot ends. |
| ProjectionCacheSnapshot |
[ Experimental ]
|
| SelectionCache |
[ Experimental ]
|
| SelectionContext |
[ Experimental ]
|
| SpecializesCache |
[ Experimental ]
|
| SupertraitDefIds |
[ Experimental ]
|
| VtableAutoImplData |
[ Experimental ]
|
| VtableBuiltinData |
[ Experimental ]
|
| VtableClosureData |
[ Experimental ]
|
| VtableFnPointerData |
[ Experimental ]
|
| VtableGeneratorData |
[ Experimental ]
|
| VtableImplData |
[ Experimental ] Identifies a particular impl in the source, along with a set of
substitutions from the impl's type/lifetime parameters. The
|
| VtableObjectData |
[ Experimental ] A vtable for some object-safe trait |
Enums
| Clause |
[ Experimental ] This matches the definition from Page 7 of "A Proof Procedure for the Logic of Hereditary Harrop Formulas". |
| DomainGoal |
[ Experimental ]
|
| FulfillmentErrorCode |
[ Experimental ]
|
| Goal |
[ Experimental ]
|
| IntercrateAmbiguityCause |
[ Experimental ]
|
| IntercrateMode |
[ Experimental ]
|
| MethodViolationCode |
[ Experimental ] Reasons a method might not be object-safe. |
| ObjectSafetyViolation |
[ Experimental ]
|
| ObligationCauseCode |
[ Experimental ]
|
| OrphanCheckErr |
[ Experimental ]
|
| QuantifierKind |
[ Experimental ]
|
| Reveal |
[ Experimental ] Depending on the stage of compilation, we want projection to be more or less conservative. |
| SelectionError |
[ Experimental ]
|
| Vtable |
[ Experimental ] Given the successful resolution of an obligation, the |
| WhereClauseAtom |
[ Experimental ] The following types: |
Traits
| TraitEngine |
[ Experimental ]
|
Functions
| elaborate_predicates |
[ Experimental ]
|
| find_associated_item |
[ Experimental ] Given a selected impl described by |
| fully_normalize |
[ Experimental ]
|
| fully_normalize_with_fulfillcx |
[ Experimental ]
|
| normalize |
[ Experimental ] Normalizes any associated type projections in |
| normalize_param_env_or_error |
[ Experimental ] Normalizes the parameter environment, reporting errors if they occur. |
| normalize_projection_type |
[ Experimental ] The guts of |
| orphan_check |
[ Experimental ] Checks the coherence orphan rules. |
| overlapping_impls |
[ Experimental ] If there are types that satisfy both impls, invokes |
| poly_project_and_unify_type |
[ Experimental ] Evaluates constraints of the form: |
| predicates_for_generics |
[ Experimental ] Creates predicate obligations from the generic bounds. |
| provide |
[ Experimental ]
|
| supertrait_def_ids |
[ Experimental ]
|
| supertraits |
[ Experimental ]
|
| transitive_bounds |
[ Experimental ]
|
| translate_substs |
[ Experimental ] 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). |
| type_known_to_meet_bound |
[ Experimental ] Determines whether the type |
Type Definitions
| Obligations |
[ Experimental ]
|
| PredicateObligation |
[ Experimental ]
|
| PredicateObligations |
[ Experimental ]
|
| Selection |
[ Experimental ]
|
| SelectionResult |
[ Experimental ] When performing resolution, it is typically the case that there can be one of three outcomes: |
| Supertraits |
[ Experimental ]
|
| TraitObligation |
[ Experimental ]
|
| TraitObligations |
[ Experimental ]
|