Structs

Enums

An indication of where we are in the control flow graph. Used for printing extra information in dump_mir

Constants

ALIGN 🔒

Alignment for lining up comments following MIR statements

Number of bytes to print per allocation hex dump line.

INDENT 🔒

Functions

comment 🔒

Attempts to open a file where we should dump a given MIR or other bit of MIR-related data. Used by mir-dump, but also by other bits of code (e.g., NLL inference) that dump graphviz data or other things, and hence takes the extension as an argument.

Attempts to open the MIR dump file with the given name and extension.

Dumps the size and metadata and content of an allocation to the given writer. The expectation is that the caller first prints other relevant metadata, so the exact format of this function is (without leading or trailing newline):

Returns the file basename portion (without extension) of a filename path where we should dump a MIR representation output files.

If the session is properly configured, dumps a human-readable representation of the mir into:

dump_path 🔒

Returns the path to the filename where we should dump a given MIR. Also used by other bits of code (e.g., NLL inference) that dump graphviz data or other things.

Calc converted u64 decimal into hex and return it’s length in chars

The prefix argument allows callers to add an arbitrary prefix before each line (even if there is only one line). Note that your prefix should contain a trailing space as the lines are printed directly after it.

Prints the line start address and returns the new line start address.

Find all AllocIds mentioned (recursively) in the MIR body and print their corresponding allocations.

Write out a human-readable textual representation for the given basic block.

After we print the main statement, we sometimes dump extra information. There’s often a lot of little things “nuzzled up” in a statement.

Write out a human-readable textual representation for the given function.

Write out a human-readable textual representation of the MIR’s fn type and the types of its local variables (both user-defined bindings and compiler temporaries).

Write out a human-readable textual representation for the given MIR.

Prints local variables in a scope tree.