A different sort of visitor for walking fn bodies. Unlike the
normal visitor, which just walks the entire body in one shot, the
ExprUseVisitor determines how expressions are being used.
If the MC results in an error, it’s because the type check failed (or will fail, when the error is uncovered and reported during writeback). In this case, we just ignore this part of the code.
The ExprUseVisitor type
Place represents how a value is located in memory.
PlaceWithHirId represents how a value is located in memory.
This trait defines the callbacks you can expect to receive when employing the ExprUseVisitor.