Expand description

This module contains the “canonicalizer” itself.

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

Structs

Traits

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.