Module rustc_trait_selection::traits::query
source · Expand description
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
rustc_traits
.
Modules
- Code for the ‘normalization’ query. This consists of a wrapper which folds deeply, invoking the underlying
normalize_projection_ty
query when it encounters projections.
Structs
- A set of constraints that need to be satisfied in order for a type to be valid for destruction.
- Result from the
normalize_projection_ty
query.
Enums
- 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 theOutlivesEnv
which in turn is supplied to the region checker and other parts of the inference system.