[][src]Module rustc::traits::query

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

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 librustc_traits.

Modules

dropck_outlivesInternal
evaluate_obligationInternal
method_autoderefInternal
normalizeInternal

Code for the 'normalization' query. This consists of a wrapper which folds deeply, invoking the underlying normalize_projection_ty query when it encounters projections.

outlives_boundsInternal
type_opInternal
type_opInternal

Structs

CandidateStepInternal
DropckOutlivesResultInternal
DtorckConstraintInternal

A set of constraints that need to be satisfied in order for a type to be valid for destruction.

MethodAutoderefBadTyInternal
MethodAutoderefStepsResultInternal
NoSolutionInternal
NormalizationResultInternal

Result from the normalize_projection_ty query.

Enums

OutlivesBoundInternal

Outlives bounds are relationships between generic parameters, whether they both be regions ('a: 'b) or whether types are involved (T: 'a). These relationships can be extracted from the full set of predicates we understand or also from types (in which case they are called implied bounds). They are fed to the OutlivesEnv which in turn is supplied to the region checker and other parts of the inference system.

Functions

trivial_dropck_outlivesInternal

This returns true if the type ty is "trivial" for dropck-outlives -- that is, if it doesn't require any types to outlive. This is similar but not quite the same as the needs_drop test in the compiler already -- that is, for every type T for which this function return true, needs-drop would return false. But the reverse does not hold: in particular, needs_drop returns false for PhantomData, but it is not trivial for dropck-outlives.

Type Definitions

CanonicalPredicateGoalInternal
CanonicalProjectionGoalInternal
CanonicalTyGoalInternal
CanonicalTypeOpAscribeUserTypeGoalInternal
CanonicalTypeOpEqGoalInternal
CanonicalTypeOpNormalizeGoalInternal
CanonicalTypeOpProvePredicateGoalInternal
CanonicalTypeOpSubtypeGoalInternal
FallibleInternal