ControlFlowUtil#internalDepthFirstSearch: rewrite subroutine tracking

Now every graph edge is accompanied with subroutine stack.
Also shared mutable state is removed from instructions (now it's local to DFS procedure).
Fixes IDEA-201093 Unreachable bug in three try catch while two have finally

GitOrigin-RevId: b600ba63e2da315c9830836adcdc4d8fecf92ca3
This commit is contained in:
Tagir Valeev
2019-07-02 06:52:16 +03:00
committed by intellij-monorepo-bot
parent 9e10dbf3e6
commit 3930aa3a6f
8 changed files with 121 additions and 181 deletions
@@ -0,0 +1,13 @@
class Test {
public static void main(String[] args) {
try {
try {} catch (Exception e) {} finally {
try {} catch (Exception e) {} finally {
for (int i = 0; i < 10; i++) {
}
}
}
System.out.println("Reachable");
}catch(Exception e) {}
}
}