Skip to main content

Module canonicalizer

Module canonicalizer 

Source
Expand description

This module contains code to canonicalize values into a Canonical<'db, T>.

For an overview of what canonicalization is and how it fits into rustc, check out the chapter in the rustc dev guide.

Structs§

CanonicalizeAllFreeRegions 🔒
CanonicalizeQueryResponse 🔒
CanonicalizeUserTypeAnnotation 🔒
Canonicalizer 🔒
OriginalQueryValues
When we canonicalize a value to form a query, we wind up replacing various parts of it with canonical variables. This struct stores those replaced bits to remember for when we process the query result.

Traits§

CanonicalizeMode 🔒
Controls how we canonicalize “free regions” that are not inference variables. This depends on what we are canonicalizing for – e.g., if we are canonicalizing to create a query, we want to replace those with inference variables, since we want to make a maximally general query. But if we are canonicalizing a query response, then we don’t typically replace free regions, as they must have been introduced from other parts of the system.