Expand description

Canonicalization is used to separate some goal from its context, throwing away unnecessary information in the process.

This is necessary to cache goals containing inference variables and placeholders without restricting them to the current InferCtxt.

Canonicalization is fairly involved, for more details see the relevant section of the rustc-dev-guide.

Traits§