Expand description
Detect the boolean locals that rustc uses to track whether a place needs to be dropped.
This may miss some drop flags but the ones it detects are guaranteed to be correct, as we do a control-flow analysis to be sure.
Structsยง
- Analysis
State ๐ - Check
Flag ๐Correctness - For each CFG node and each flag, we record the possible states of both the flag value and initialization status of the corresponding place. We then add an edge to the graph when one can transition between two such states. We then check if an invalid node is reachable; if not, then the boolean flag faithfully represents the initialization status of the place!
- Compute
Updates ๐ - Flag
Update ๐ - Gather
Candidates ๐ - Transform
Enumsยง
- Analysis
Node ๐ - Flag
Status ๐ - Update ๐