Files
Aleksandr.Govenko 6659947437 PY-51564 "code is unreachable" warning does not consider that context managers can abort
Added PyWithContextExitInstruction that works as 'except' node in try-except statements, but for 'with context-manager' statements. This allows to see when it can recover from exception by checking the type of `contextlib.AbstractContextManager`

Merge-request: IJ-MR-152213
Merged-by: Aleksandr Govenko <aleksandr.govenko@jetbrains.com>

GitOrigin-RevId: fd5a139de31d47136cc86b4a7e090a20b73b8744
2025-02-14 13:18:20 +00:00

18 lines
550 B
Plaintext

0(1) element: null
1(2) element: PyWithStatement
2(4) READ ACCESS: context_manager
3(15) exit context manager: context_manager
4(5,3) element: PyIfStatement
5(6,7,3) READ ACCESS: c
6(12) element: null. Condition: c:false
7(8) element: null. Condition: c:true
8(3,9) ASSERTTYPE ACCESS: c
9(10) element: PyStatementList
10(11,3) raise: PyRaiseStatement
11(17,3) READ ACCESS: ValueError
12(13,3) element: PyAssignmentStatement
13(14,3) READ ACCESS: c
14(15,3) WRITE ACCESS: val
15(16) element: PyPrintStatement
16(17) READ ACCESS: val
17() element: null