The MIR is built from some typed high-level IR (THIR). This section defines the THIR along with a trait for accessing it. The intention is to allow MIR construction to be unit-tested and separated from the Rust source and compiler data structures.
This module contains the functionality to convert from the wacky tcx data
structures into the THIR. The
Validation of patterns/matches.
The Thir trait implementor lowers their expressions (
"Mirroring" is the process of converting from a HIR type into one
of the THIR types defined in this file. This is basically a "on
the fly" desugaring step that hides a lot of the messiness in the
tcx. For example, the mirror of a