| # Debugging the borrow checker | |
| ## Region Constraint Graphs and Their Strongly Connected Components | |
|  | |
| With `-Z dump-mir-graphviz=yes`, you will also get Graphviz files for the outlives constraints | |
| of the MIR bodies you asked for, as well as the strongly connected components (SCCs) on them. | |
| They are available as `mir_dump/rs-file-name.function-name.-------.nll.0.regioncx.all.dot` and | |
| `mir_dump/rs-file-name.function-name.-------.nll.0.regioncx.scc.dot` respectively. | |
| For both graphs, named region variables will be shown with their external name (such as `'static`) | |
| shown in parenthesis. | |
| For region inference variables in universes other than the root universe, | |
| they will be shown as `/U13` (for universe 13). | |
| In the region graph, | |
| edges are labelled with the MIR location where the relationship is required to hold, | |
| or `All` if the constraint should always be true. | |
|  | |
| **Note:** There are implicit edges from `'static` to every region, but those are not rendered | |
| in the region graph to avoid clutter. | |
| They _do_ however show up in the SCC graph. | |
| This is why there are outgoing edges from `SCC(5)` in the SCC graph that do not seem | |
| to have corresponding edges in the region outlives graph above. | |
| ## See also | |
| The [general instructions on debugging dataflow](../mir/dataflow.md) also apply to | |
| graphs generated from borrowcheck data. |