[−][src]Trait rustc_mir_build::thir::Mirror
"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 &'tcx hir::Expr is an
Expr<'tcx>.
Mirroring is gradual: when you mirror an outer expression like e1 + e2, the references to the inner expressions e1 and e2 are
ExprRef<'tcx> instances, and they may or may not be eagerly
mirrored. This allows a single AST node from the compiler to
expand into one or more Thir nodes, which lets the Thir nodes be
simpler.