FIR CFA: add edges from maybe-throwing statements to catch/finally
This commit is contained in:
@@ -90,9 +90,12 @@ digraph initializationInTry_kt {
|
||||
15 -> {16};
|
||||
16 -> {17};
|
||||
17 -> {18};
|
||||
17 -> {24} [label="onUncaughtException"];
|
||||
18 -> {19};
|
||||
18 -> {24} [label="onUncaughtException"];
|
||||
19 -> {20};
|
||||
20 -> {21};
|
||||
20 -> {24} [label="onUncaughtException"];
|
||||
21 -> {22};
|
||||
22 -> {23};
|
||||
23 -> {24};
|
||||
@@ -157,8 +160,10 @@ digraph initializationInTry_kt {
|
||||
38 -> {39};
|
||||
39 -> {40};
|
||||
40 -> {41};
|
||||
40 -> {46} [label="onUncaughtException"];
|
||||
41 -> {42};
|
||||
42 -> {43};
|
||||
42 -> {46} [label="onUncaughtException"];
|
||||
43 -> {44};
|
||||
44 -> {45};
|
||||
45 -> {46};
|
||||
|
||||
@@ -145,7 +145,7 @@ digraph complex_kt {
|
||||
21 -> {22 27};
|
||||
22 -> {23};
|
||||
23 -> {24};
|
||||
24 -> {25};
|
||||
24 -> {25 27};
|
||||
25 -> {26};
|
||||
26 -> {27 36};
|
||||
27 -> {28};
|
||||
|
||||
+2
-2
@@ -177,12 +177,12 @@ digraph inplaceLambdaInControlFlowExpressions_kt {
|
||||
43 -> {44} [style=dashed];
|
||||
44 -> {45};
|
||||
45 -> {46};
|
||||
46 -> {47};
|
||||
46 -> {47 53};
|
||||
47 -> {48};
|
||||
48 -> {49};
|
||||
49 -> {50} [color=green];
|
||||
49 -> {59} [color=red];
|
||||
50 -> {51};
|
||||
50 -> {51 53};
|
||||
51 -> {52};
|
||||
52 -> {53 59};
|
||||
53 -> {54};
|
||||
|
||||
+1
-1
@@ -324,7 +324,7 @@ digraph postponedLambdaInReturn_kt {
|
||||
86 -> {87};
|
||||
87 -> {88};
|
||||
88 -> {89} [color=green];
|
||||
89 -> {90};
|
||||
89 -> {90 94};
|
||||
90 -> {107};
|
||||
90 -> {91} [style=dotted];
|
||||
91 -> {92} [style=dotted];
|
||||
|
||||
@@ -221,11 +221,11 @@ digraph tryCatch_kt {
|
||||
subgraph cluster_31 {
|
||||
color=blue
|
||||
84 [label="Catch enter"];
|
||||
85 [label="Variable declaration: e: R|kotlin/Exception|"];
|
||||
85 [label="Variable declaration: e: R|kotlin/RuntimeException|"];
|
||||
subgraph cluster_32 {
|
||||
color=blue
|
||||
86 [label="Enter block"];
|
||||
87 [label="Jump: continue@@@[Boolean(true)] "];
|
||||
87 [label="Jump: break@@@[Boolean(true)] "];
|
||||
88 [label="Stub" style="filled" fillcolor=gray];
|
||||
89 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
@@ -234,11 +234,11 @@ digraph tryCatch_kt {
|
||||
subgraph cluster_33 {
|
||||
color=blue
|
||||
91 [label="Catch enter"];
|
||||
92 [label="Variable declaration: e: R|kotlin/RuntimeException|"];
|
||||
92 [label="Variable declaration: e: R|kotlin/Exception|"];
|
||||
subgraph cluster_34 {
|
||||
color=blue
|
||||
93 [label="Enter block"];
|
||||
94 [label="Jump: break@@@[Boolean(true)] "];
|
||||
94 [label="Jump: continue@@@[Boolean(true)] "];
|
||||
95 [label="Stub" style="filled" fillcolor=gray];
|
||||
96 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
@@ -290,7 +290,7 @@ digraph tryCatch_kt {
|
||||
69 -> {70};
|
||||
70 -> {71};
|
||||
71 -> {72};
|
||||
72 -> {73};
|
||||
72 -> {73 84 91};
|
||||
73 -> {74 75};
|
||||
74 -> {81};
|
||||
75 -> {76};
|
||||
@@ -306,7 +306,7 @@ digraph tryCatch_kt {
|
||||
84 -> {85};
|
||||
85 -> {86};
|
||||
86 -> {87};
|
||||
87 -> {47} [color=green style=dashed];
|
||||
87 -> {103};
|
||||
87 -> {88} [style=dotted];
|
||||
88 -> {89} [style=dotted];
|
||||
89 -> {90} [style=dotted];
|
||||
@@ -314,7 +314,7 @@ digraph tryCatch_kt {
|
||||
91 -> {92};
|
||||
92 -> {93};
|
||||
93 -> {94};
|
||||
94 -> {103};
|
||||
94 -> {47} [color=green style=dashed];
|
||||
94 -> {95} [style=dotted];
|
||||
95 -> {96} [style=dotted];
|
||||
96 -> {97} [style=dotted];
|
||||
|
||||
+4
@@ -63,6 +63,7 @@ digraph variableInitializedInTryBlock_kt {
|
||||
4 -> {5};
|
||||
5 -> {6};
|
||||
6 -> {7};
|
||||
6 -> {21} [label="onUncaughtException"];
|
||||
7 -> {8 11};
|
||||
8 -> {9};
|
||||
9 -> {21} [label="return@/test"];
|
||||
@@ -72,9 +73,12 @@ digraph variableInitializedInTryBlock_kt {
|
||||
12 -> {13};
|
||||
13 -> {14};
|
||||
14 -> {15};
|
||||
14 -> {21} [label="onUncaughtException"];
|
||||
15 -> {16};
|
||||
15 -> {21} [label="onUncaughtException"];
|
||||
16 -> {17};
|
||||
17 -> {18};
|
||||
17 -> {21} [label="onUncaughtException"];
|
||||
18 -> {19};
|
||||
19 -> {20};
|
||||
20 -> {21};
|
||||
|
||||
+2
@@ -115,6 +115,7 @@ finally {
|
||||
23 -> {24};
|
||||
23 -> {17} [color=green style=dashed];
|
||||
24 -> {25};
|
||||
24 -> {27} [label="onUncaughtException"];
|
||||
25 -> {26};
|
||||
26 -> {27};
|
||||
27 -> {28};
|
||||
@@ -202,6 +203,7 @@ finally {
|
||||
46 -> {47};
|
||||
48 -> {49};
|
||||
49 -> {50};
|
||||
49 -> {52} [label="onUncaughtException"];
|
||||
50 -> {51};
|
||||
51 -> {52};
|
||||
52 -> {53};
|
||||
|
||||
Reference in New Issue
Block a user