Each function becomes a CFG of basic blocks ending in an explicit terminator. - [x] Terminators: Branch, Jump, Return, Raise, plus ForEach to keep Python's iteration protocol explicit - [x] Predecessors, successors, reachability, graph integrity checks - [x] Exception edges for try/except/finally (#36; `finally` on the normal path only) - [x] Loops and back edges - [x] `if`/`else`, `elif`, early returns, `while`, `for`, `break`, `continue`, `raise`. `with` and `try` follow their PyHIR nodes Reference: `docs/architecture.md` §5 CFG. Delivery: #12, #36 (exception edges)
Activity