[FIR] Tests. Improve style of control flow graphs

Add borders to control flow graphs of different functions
Highlight enter and exit nodes of each graph
This commit is contained in:
Dmitriy Novozhilov
2019-08-28 15:12:40 +03:00
parent 7851657b98
commit b58a03458e
24 changed files with 434 additions and 428 deletions
@@ -1,8 +1,8 @@
digraph binaryOperations_kt { digraph binaryOperations_kt {
graph [splines=ortho] graph [splines=ortho, nodesep=3]
subgraph test_1 { subgraph cluster_test_1 {
0 [shape=box label="Enter function test_1"]; 0 [shape=box label="Enter function test_1" style="filled"];
1 [shape=box label="Enter block"]; 1 [shape=box label="Enter block"];
2 [shape=box label="Enter when"]; 2 [shape=box label="Enter when"];
3 [shape=box label="Enter when branch condition "]; 3 [shape=box label="Enter when branch condition "];
@@ -23,7 +23,7 @@ subgraph test_1 {
18 [shape=box label="Exit when branch result"]; 18 [shape=box label="Exit when branch result"];
19 [shape=box label="Exit when"]; 19 [shape=box label="Exit when"];
20 [shape=box label="Exit block"]; 20 [shape=box label="Exit block"];
21 [shape=box label="Exit function test_1"]; 21 [shape=box label="Exit function test_1" style="filled"];
0 -> {1}; 0 -> {1};
1 -> {2}; 1 -> {2};
@@ -48,8 +48,8 @@ subgraph test_1 {
20 -> {21}; 20 -> {21};
} }
subgraph test_2 { subgraph cluster_test_2 {
22 [shape=box label="Enter function test_2"]; 22 [shape=box label="Enter function test_2" style="filled"];
23 [shape=box label="Enter block"]; 23 [shape=box label="Enter block"];
24 [shape=box label="Enter when"]; 24 [shape=box label="Enter when"];
25 [shape=box label="Enter when branch condition "]; 25 [shape=box label="Enter when branch condition "];
@@ -70,7 +70,7 @@ subgraph test_2 {
40 [shape=box label="Exit when branch result"]; 40 [shape=box label="Exit when branch result"];
41 [shape=box label="Exit when"]; 41 [shape=box label="Exit when"];
42 [shape=box label="Exit block"]; 42 [shape=box label="Exit block"];
43 [shape=box label="Exit function test_2"]; 43 [shape=box label="Exit function test_2" style="filled"];
22 -> {23}; 22 -> {23};
23 -> {24}; 23 -> {24};
@@ -95,8 +95,8 @@ subgraph test_2 {
42 -> {43}; 42 -> {43};
} }
subgraph test_3 { subgraph cluster_test_3 {
44 [shape=box label="Enter function test_3"]; 44 [shape=box label="Enter function test_3" style="filled"];
45 [shape=box label="Enter block"]; 45 [shape=box label="Enter block"];
46 [shape=box label="Enter when"]; 46 [shape=box label="Enter when"];
47 [shape=box label="Enter when branch condition "]; 47 [shape=box label="Enter when branch condition "];
@@ -121,7 +121,7 @@ subgraph test_3 {
66 [shape=box label="Exit when branch result"]; 66 [shape=box label="Exit when branch result"];
67 [shape=box label="Exit when"]; 67 [shape=box label="Exit when"];
68 [shape=box label="Exit block"]; 68 [shape=box label="Exit block"];
69 [shape=box label="Exit function test_3"]; 69 [shape=box label="Exit function test_3" style="filled"];
44 -> {45}; 44 -> {45};
45 -> {46}; 45 -> {46};
@@ -150,8 +150,8 @@ subgraph test_3 {
68 -> {69}; 68 -> {69};
} }
subgraph test_4 { subgraph cluster_test_4 {
70 [shape=box label="Enter function test_4"]; 70 [shape=box label="Enter function test_4" style="filled"];
71 [shape=box label="Enter block"]; 71 [shape=box label="Enter block"];
72 [shape=box label="Enter when"]; 72 [shape=box label="Enter when"];
73 [shape=box label="Enter when branch condition "]; 73 [shape=box label="Enter when branch condition "];
@@ -176,7 +176,7 @@ subgraph test_4 {
92 [shape=box label="Exit when branch result"]; 92 [shape=box label="Exit when branch result"];
93 [shape=box label="Exit when"]; 93 [shape=box label="Exit when"];
94 [shape=box label="Exit block"]; 94 [shape=box label="Exit block"];
95 [shape=box label="Exit function test_4"]; 95 [shape=box label="Exit function test_4" style="filled"];
70 -> {71}; 70 -> {71};
71 -> {72}; 71 -> {72};
@@ -1,8 +1,8 @@
digraph booleanOperatorsWithConsts_kt { digraph booleanOperatorsWithConsts_kt {
graph [splines=ortho] graph [splines=ortho, nodesep=3]
subgraph test_1 { subgraph cluster_test_1 {
0 [shape=box label="Enter function test_1"]; 0 [shape=box label="Enter function test_1" style="filled"];
1 [shape=box label="Enter block"]; 1 [shape=box label="Enter block"];
2 [shape=box label="Enter when"]; 2 [shape=box label="Enter when"];
3 [shape=box label="Enter when branch condition "]; 3 [shape=box label="Enter when branch condition "];
@@ -23,7 +23,7 @@ subgraph test_1 {
18 [shape=box label="Exit when branch result"]; 18 [shape=box label="Exit when branch result"];
19 [shape=box label="Exit when"]; 19 [shape=box label="Exit when"];
20 [shape=box label="Exit block"]; 20 [shape=box label="Exit block"];
21 [shape=box label="Exit function test_1"]; 21 [shape=box label="Exit function test_1" style="filled"];
0 -> {1}; 0 -> {1};
1 -> {2}; 1 -> {2};
@@ -48,8 +48,8 @@ subgraph test_1 {
20 -> {21}; 20 -> {21};
} }
subgraph test_2 { subgraph cluster_test_2 {
22 [shape=box label="Enter function test_2"]; 22 [shape=box label="Enter function test_2" style="filled"];
23 [shape=box label="Enter block"]; 23 [shape=box label="Enter block"];
24 [shape=box label="Enter when"]; 24 [shape=box label="Enter when"];
25 [shape=box label="Enter when branch condition "]; 25 [shape=box label="Enter when branch condition "];
@@ -71,7 +71,7 @@ subgraph test_2 {
41 [shape=box label="Exit when branch result"]; 41 [shape=box label="Exit when branch result"];
42 [shape=box label="Exit when"]; 42 [shape=box label="Exit when"];
43 [shape=box label="Exit block"]; 43 [shape=box label="Exit block"];
44 [shape=box label="Exit function test_2"]; 44 [shape=box label="Exit function test_2" style="filled"];
22 -> {23}; 22 -> {23};
23 -> {24}; 23 -> {24};
@@ -98,8 +98,8 @@ subgraph test_2 {
43 -> {44}; 43 -> {44};
} }
subgraph test_3 { subgraph cluster_test_3 {
45 [shape=box label="Enter function test_3"]; 45 [shape=box label="Enter function test_3" style="filled"];
46 [shape=box label="Enter block"]; 46 [shape=box label="Enter block"];
47 [shape=box label="Enter when"]; 47 [shape=box label="Enter when"];
48 [shape=box label="Enter when branch condition "]; 48 [shape=box label="Enter when branch condition "];
@@ -120,7 +120,7 @@ subgraph test_3 {
63 [shape=box label="Exit when branch result"]; 63 [shape=box label="Exit when branch result"];
64 [shape=box label="Exit when"]; 64 [shape=box label="Exit when"];
65 [shape=box label="Exit block"]; 65 [shape=box label="Exit block"];
66 [shape=box label="Exit function test_3"]; 66 [shape=box label="Exit function test_3" style="filled"];
45 -> {46}; 45 -> {46};
46 -> {47}; 46 -> {47};
@@ -145,8 +145,8 @@ subgraph test_3 {
65 -> {66}; 65 -> {66};
} }
subgraph test_4 { subgraph cluster_test_4 {
67 [shape=box label="Enter function test_4"]; 67 [shape=box label="Enter function test_4" style="filled"];
68 [shape=box label="Enter block"]; 68 [shape=box label="Enter block"];
69 [shape=box label="Enter when"]; 69 [shape=box label="Enter when"];
70 [shape=box label="Enter when branch condition "]; 70 [shape=box label="Enter when branch condition "];
@@ -168,7 +168,7 @@ subgraph test_4 {
86 [shape=box label="Exit when branch result"]; 86 [shape=box label="Exit when branch result"];
87 [shape=box label="Exit when"]; 87 [shape=box label="Exit when"];
88 [shape=box label="Exit block"]; 88 [shape=box label="Exit block"];
89 [shape=box label="Exit function test_4"]; 89 [shape=box label="Exit function test_4" style="filled"];
67 -> {68}; 67 -> {68};
68 -> {69}; 68 -> {69};
@@ -195,8 +195,8 @@ subgraph test_4 {
88 -> {89}; 88 -> {89};
} }
subgraph test_5 { subgraph cluster_test_5 {
90 [shape=box label="Enter function test_5"]; 90 [shape=box label="Enter function test_5" style="filled"];
91 [shape=box label="Enter block"]; 91 [shape=box label="Enter block"];
92 [shape=box label="Enter when"]; 92 [shape=box label="Enter when"];
93 [shape=box label="Enter when branch condition "]; 93 [shape=box label="Enter when branch condition "];
@@ -217,7 +217,7 @@ subgraph test_5 {
108 [shape=box label="Exit when branch result"]; 108 [shape=box label="Exit when branch result"];
109 [shape=box label="Exit when"]; 109 [shape=box label="Exit when"];
110 [shape=box label="Exit block"]; 110 [shape=box label="Exit block"];
111 [shape=box label="Exit function test_5"]; 111 [shape=box label="Exit function test_5" style="filled"];
90 -> {91}; 90 -> {91};
91 -> {92}; 91 -> {92};
@@ -242,8 +242,8 @@ subgraph test_5 {
110 -> {111}; 110 -> {111};
} }
subgraph test_6 { subgraph cluster_test_6 {
112 [shape=box label="Enter function test_6"]; 112 [shape=box label="Enter function test_6" style="filled"];
113 [shape=box label="Enter block"]; 113 [shape=box label="Enter block"];
114 [shape=box label="Enter when"]; 114 [shape=box label="Enter when"];
115 [shape=box label="Enter when branch condition "]; 115 [shape=box label="Enter when branch condition "];
@@ -266,7 +266,7 @@ subgraph test_6 {
132 [shape=box label="Exit when branch result"]; 132 [shape=box label="Exit when branch result"];
133 [shape=box label="Exit when"]; 133 [shape=box label="Exit when"];
134 [shape=box label="Exit block"]; 134 [shape=box label="Exit block"];
135 [shape=box label="Exit function test_6"]; 135 [shape=box label="Exit function test_6" style="filled"];
112 -> {113}; 112 -> {113};
113 -> {114}; 113 -> {114};
@@ -294,8 +294,8 @@ subgraph test_6 {
134 -> {135}; 134 -> {135};
} }
subgraph test_7 { subgraph cluster_test_7 {
136 [shape=box label="Enter function test_7"]; 136 [shape=box label="Enter function test_7" style="filled"];
137 [shape=box label="Enter block"]; 137 [shape=box label="Enter block"];
138 [shape=box label="Enter when"]; 138 [shape=box label="Enter when"];
139 [shape=box label="Enter when branch condition "]; 139 [shape=box label="Enter when branch condition "];
@@ -316,7 +316,7 @@ subgraph test_7 {
154 [shape=box label="Exit when branch result"]; 154 [shape=box label="Exit when branch result"];
155 [shape=box label="Exit when"]; 155 [shape=box label="Exit when"];
156 [shape=box label="Exit block"]; 156 [shape=box label="Exit block"];
157 [shape=box label="Exit function test_7"]; 157 [shape=box label="Exit function test_7" style="filled"];
136 -> {137}; 136 -> {137};
137 -> {138}; 137 -> {138};
@@ -341,8 +341,8 @@ subgraph test_7 {
156 -> {157}; 156 -> {157};
} }
subgraph test_8 { subgraph cluster_test_8 {
158 [shape=box label="Enter function test_8"]; 158 [shape=box label="Enter function test_8" style="filled"];
159 [shape=box label="Enter block"]; 159 [shape=box label="Enter block"];
160 [shape=box label="Enter when"]; 160 [shape=box label="Enter when"];
161 [shape=box label="Enter when branch condition "]; 161 [shape=box label="Enter when branch condition "];
@@ -364,7 +364,7 @@ subgraph test_8 {
177 [shape=box label="Exit when branch result"]; 177 [shape=box label="Exit when branch result"];
178 [shape=box label="Exit when"]; 178 [shape=box label="Exit when"];
179 [shape=box label="Exit block"]; 179 [shape=box label="Exit block"];
180 [shape=box label="Exit function test_8"]; 180 [shape=box label="Exit function test_8" style="filled"];
158 -> {159}; 158 -> {159};
159 -> {160}; 159 -> {160};
+4 -4
View File
@@ -1,8 +1,8 @@
digraph complex_kt { digraph complex_kt {
graph [splines=ortho] graph [splines=ortho, nodesep=3]
subgraph fetchPluginReleaseDate { subgraph cluster_fetchPluginReleaseDate {
0 [shape=box label="Enter function fetchPluginReleaseDate"]; 0 [shape=box label="Enter function fetchPluginReleaseDate" style="filled"];
1 [shape=box label="Enter block"]; 1 [shape=box label="Enter block"];
2 [shape=box label="Const: String(https://plugins.jetbrains.com/api/plugins/)"]; 2 [shape=box label="Const: String(https://plugins.jetbrains.com/api/plugins/)"];
3 [shape=box label="Access variable R|<local>/pluginId|"]; 3 [shape=box label="Access variable R|<local>/pluginId|"];
@@ -46,7 +46,7 @@ subgraph fetchPluginReleaseDate {
38 [shape=box label="Access variable <Unresolved name: IOException>#"]; 38 [shape=box label="Access variable <Unresolved name: IOException>#"];
39 [shape=box label="Access variable <Unresolved name: ResponseParseException>#"]; 39 [shape=box label="Access variable <Unresolved name: ResponseParseException>#"];
40 [shape=box label="Exit annotation"]; 40 [shape=box label="Exit annotation"];
41 [shape=box label="Exit function fetchPluginReleaseDate"]; 41 [shape=box label="Exit function fetchPluginReleaseDate" style="filled"];
0 -> {1}; 0 -> {1};
1 -> {2}; 1 -> {2};
+7 -7
View File
@@ -1,16 +1,16 @@
digraph initBlock_kt { digraph initBlock_kt {
graph [splines=ortho] graph [splines=ortho, nodesep=3]
subgraph <init> { subgraph cluster__init_ {
0 [shape=box label="Enter function <init>"]; 0 [shape=box label="Enter function <init>" style="filled"];
1 [shape=box label="Exit function <init>"]; 1 [shape=box label="Exit function <init>" style="filled"];
0 -> {1}; 0 -> {1};
} }
subgraph <init> { subgraph cluster__init_ {
2 [shape=box label="Enter function <init>"]; 2 [shape=box label="Enter function <init>" style="filled"];
3 [shape=box label="Exit function <init>"]; 3 [shape=box label="Exit function <init>" style="filled"];
2 -> {3}; 2 -> {3};
} }
+13 -13
View File
@@ -1,8 +1,8 @@
digraph jumps_kt { digraph jumps_kt {
graph [splines=ortho] graph [splines=ortho, nodesep=3]
subgraph test_1 { subgraph cluster_test_1 {
0 [shape=box label="Enter function test_1"]; 0 [shape=box label="Enter function test_1" style="filled"];
1 [shape=box label="Enter block"]; 1 [shape=box label="Enter block"];
2 [shape=box label="Enter when"]; 2 [shape=box label="Enter when"];
3 [shape=box label="Enter when branch condition "]; 3 [shape=box label="Enter when branch condition "];
@@ -27,7 +27,7 @@ subgraph test_1 {
22 [shape=box label="Access variable R|<local>/y|"]; 22 [shape=box label="Access variable R|<local>/y|"];
23 [shape=box label="Function call: R|<local>/y|.R|kotlin/Int.inc|()"]; 23 [shape=box label="Function call: R|<local>/y|.R|kotlin/Int.inc|()"];
24 [shape=box label="Exit block"]; 24 [shape=box label="Exit block"];
25 [shape=box label="Exit function test_1"]; 25 [shape=box label="Exit function test_1" style="filled"];
0 -> {1}; 0 -> {1};
1 -> {2}; 1 -> {2};
@@ -57,8 +57,8 @@ subgraph test_1 {
24 -> {25}; 24 -> {25};
} }
subgraph test_2 { subgraph cluster_test_2 {
26 [shape=box label="Enter function test_2"]; 26 [shape=box label="Enter function test_2" style="filled"];
27 [shape=box label="Enter block"]; 27 [shape=box label="Enter block"];
28 [shape=box label="Enter when"]; 28 [shape=box label="Enter when"];
29 [shape=box label="Enter when branch condition "]; 29 [shape=box label="Enter when branch condition "];
@@ -81,7 +81,7 @@ subgraph test_2 {
46 [shape=box label="Access variable R|<local>/y|"]; 46 [shape=box label="Access variable R|<local>/y|"];
47 [shape=box label="Function call: R|<local>/y|.<Ambiguity: inc, [kotlin/inc, kotlin/inc]>#()"]; 47 [shape=box label="Function call: R|<local>/y|.<Ambiguity: inc, [kotlin/inc, kotlin/inc]>#()"];
48 [shape=box label="Exit block"]; 48 [shape=box label="Exit block"];
49 [shape=box label="Exit function test_2"]; 49 [shape=box label="Exit function test_2" style="filled"];
26 -> {27}; 26 -> {27};
27 -> {28}; 27 -> {28};
@@ -108,8 +108,8 @@ subgraph test_2 {
48 -> {49}; 48 -> {49};
} }
subgraph test_3 { subgraph cluster_test_3 {
50 [shape=box label="Enter function test_3"]; 50 [shape=box label="Enter function test_3" style="filled"];
51 [shape=box label="Enter block"]; 51 [shape=box label="Enter block"];
52 [shape=box label="Enter while loop"]; 52 [shape=box label="Enter while loop"];
53 [shape=box label="Enter loop condition"]; 53 [shape=box label="Enter loop condition"];
@@ -128,7 +128,7 @@ subgraph test_3 {
66 [shape=box label="Access variable R|<local>/x|"]; 66 [shape=box label="Access variable R|<local>/x|"];
67 [shape=box label="Function call: R|<local>/x|.R|kotlin/Int.inc|()"]; 67 [shape=box label="Function call: R|<local>/x|.R|kotlin/Int.inc|()"];
68 [shape=box label="Exit block"]; 68 [shape=box label="Exit block"];
69 [shape=box label="Exit function test_3"]; 69 [shape=box label="Exit function test_3" style="filled"];
50 -> {51}; 50 -> {51};
51 -> {52}; 51 -> {52};
@@ -153,8 +153,8 @@ subgraph test_3 {
68 -> {69}; 68 -> {69};
} }
subgraph test_4 { subgraph cluster_test_4 {
70 [shape=box label="Enter function test_4"]; 70 [shape=box label="Enter function test_4" style="filled"];
71 [shape=box label="Enter block"]; 71 [shape=box label="Enter block"];
72 [shape=box label="Enter do-while loop"]; 72 [shape=box label="Enter do-while loop"];
73 [shape=box label="Enter loop block"]; 73 [shape=box label="Enter loop block"];
@@ -173,7 +173,7 @@ subgraph test_4 {
86 [shape=box label="Access variable R|<local>/x|"]; 86 [shape=box label="Access variable R|<local>/x|"];
87 [shape=box label="Function call: R|<local>/x|.R|kotlin/Int.inc|()"]; 87 [shape=box label="Function call: R|<local>/x|.R|kotlin/Int.inc|()"];
88 [shape=box label="Exit block"]; 88 [shape=box label="Exit block"];
89 [shape=box label="Exit function test_4"]; 89 [shape=box label="Exit function test_4" style="filled"];
70 -> {71}; 70 -> {71};
71 -> {72}; 71 -> {72};
+13 -13
View File
@@ -1,12 +1,12 @@
digraph lambdas_kt { digraph lambdas_kt {
graph [splines=ortho] graph [splines=ortho, nodesep=3]
subgraph run { subgraph cluster_run {
0 [shape=box label="Enter function run"]; 0 [shape=box label="Enter function run" style="filled"];
1 [shape=box label="Enter block"]; 1 [shape=box label="Enter block"];
2 [shape=box label="Function call: R|<local>/block|.R|FakeOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()"]; 2 [shape=box label="Function call: R|<local>/block|.R|FakeOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()"];
3 [shape=box label="Exit block"]; 3 [shape=box label="Exit block"];
4 [shape=box label="Exit function run"]; 4 [shape=box label="Exit function run" style="filled"];
0 -> {1}; 0 -> {1};
1 -> {2}; 1 -> {2};
@@ -14,8 +14,8 @@ subgraph run {
3 -> {4}; 3 -> {4};
} }
subgraph test_1 { subgraph cluster_test_1 {
5 [shape=box label="Enter function test_1"]; 5 [shape=box label="Enter function test_1" style="filled"];
6 [shape=box label="Enter block"]; 6 [shape=box label="Enter block"];
7 [shape=box label="Enter when"]; 7 [shape=box label="Enter when"];
8 [shape=box label="Enter when branch condition "]; 8 [shape=box label="Enter when branch condition "];
@@ -42,7 +42,7 @@ subgraph test_1 {
26 [shape=box label="Exit when branch result"]; 26 [shape=box label="Exit when branch result"];
27 [shape=box label="Exit when"]; 27 [shape=box label="Exit when"];
28 [shape=box label="Exit block"]; 28 [shape=box label="Exit block"];
29 [shape=box label="Exit function test_1"]; 29 [shape=box label="Exit function test_1" style="filled"];
5 -> {6}; 5 -> {6};
6 -> {7}; 6 -> {7};
@@ -70,13 +70,13 @@ subgraph test_1 {
28 -> {29}; 28 -> {29};
} }
subgraph <anonymous> { subgraph cluster__anonymous_ {
30 [shape=box label="Enter function anonymousFunction"]; 30 [shape=box label="Enter function anonymousFunction" style="filled"];
31 [shape=box label="Enter block"]; 31 [shape=box label="Enter block"];
32 [shape=box label="Access variable R|<local>/x|"]; 32 [shape=box label="Access variable R|<local>/x|"];
33 [shape=box label="Function call: R|<local>/x|.<Ambiguity: inc, [kotlin/inc, kotlin/inc]>#()"]; 33 [shape=box label="Function call: R|<local>/x|.<Ambiguity: inc, [kotlin/inc, kotlin/inc]>#()"];
34 [shape=box label="Exit block"]; 34 [shape=box label="Exit block"];
35 [shape=box label="Exit function anonymousFunction"]; 35 [shape=box label="Exit function anonymousFunction" style="filled"];
30 -> {31}; 30 -> {31};
31 -> {32}; 31 -> {32};
@@ -85,8 +85,8 @@ subgraph <anonymous> {
34 -> {35}; 34 -> {35};
} }
subgraph test_2 { subgraph cluster_test_2 {
36 [shape=box label="Enter function test_2"]; 36 [shape=box label="Enter function test_2" style="filled"];
37 [shape=box label="Enter block"]; 37 [shape=box label="Enter block"];
38 [shape=box label="Enter when"]; 38 [shape=box label="Enter when"];
39 [shape=box label="Enter when branch condition "]; 39 [shape=box label="Enter when branch condition "];
@@ -104,7 +104,7 @@ subgraph test_2 {
51 [shape=box label="Exit when branch result"]; 51 [shape=box label="Exit when branch result"];
52 [shape=box label="Exit when"]; 52 [shape=box label="Exit when"];
53 [shape=box label="Exit block"]; 53 [shape=box label="Exit block"];
54 [shape=box label="Exit function test_2"]; 54 [shape=box label="Exit function test_2" style="filled"];
36 -> {37}; 36 -> {37};
37 -> {38}; 37 -> {38};
+28 -28
View File
@@ -1,8 +1,8 @@
digraph loops_kt { digraph loops_kt {
graph [splines=ortho] graph [splines=ortho, nodesep=3]
subgraph testWhile { subgraph cluster_testWhile {
0 [shape=box label="Enter function testWhile"]; 0 [shape=box label="Enter function testWhile" style="filled"];
1 [shape=box label="Enter block"]; 1 [shape=box label="Enter block"];
2 [shape=box label="Enter while loop"]; 2 [shape=box label="Enter while loop"];
3 [shape=box label="Enter loop condition"]; 3 [shape=box label="Enter loop condition"];
@@ -19,7 +19,7 @@ subgraph testWhile {
14 [shape=box label="Access variable R|<local>/x|"]; 14 [shape=box label="Access variable R|<local>/x|"];
15 [shape=box label="Type operator: x is String"]; 15 [shape=box label="Type operator: x is String"];
16 [shape=box label="Exit block"]; 16 [shape=box label="Exit block"];
17 [shape=box label="Exit function testWhile"]; 17 [shape=box label="Exit function testWhile" style="filled"];
0 -> {1}; 0 -> {1};
1 -> {2}; 1 -> {2};
@@ -40,8 +40,8 @@ subgraph testWhile {
16 -> {17}; 16 -> {17};
} }
subgraph testDoWhile { subgraph cluster_testDoWhile {
18 [shape=box label="Enter function testDoWhile"]; 18 [shape=box label="Enter function testDoWhile" style="filled"];
19 [shape=box label="Enter block"]; 19 [shape=box label="Enter block"];
20 [shape=box label="Enter do-while loop"]; 20 [shape=box label="Enter do-while loop"];
21 [shape=box label="Enter loop block"]; 21 [shape=box label="Enter loop block"];
@@ -58,7 +58,7 @@ subgraph testDoWhile {
32 [shape=box label="Access variable R|<local>/x|"]; 32 [shape=box label="Access variable R|<local>/x|"];
33 [shape=box label="Type operator: x is String"]; 33 [shape=box label="Type operator: x is String"];
34 [shape=box label="Exit block"]; 34 [shape=box label="Exit block"];
35 [shape=box label="Exit function testDoWhile"]; 35 [shape=box label="Exit function testDoWhile" style="filled"];
18 -> {19}; 18 -> {19};
19 -> {20}; 19 -> {20};
@@ -79,8 +79,8 @@ subgraph testDoWhile {
34 -> {35}; 34 -> {35};
} }
subgraph testFor { subgraph cluster_testFor {
36 [shape=box label="Enter function testFor"]; 36 [shape=box label="Enter function testFor" style="filled"];
37 [shape=box label="Enter block"]; 37 [shape=box label="Enter block"];
38 [shape=box label="Const: Int(0)"]; 38 [shape=box label="Const: Int(0)"];
39 [shape=box label="Const: Int(5)"]; 39 [shape=box label="Const: Int(5)"];
@@ -108,7 +108,7 @@ subgraph testFor {
61 [shape=box label="Access variable R|<local>/x|"]; 61 [shape=box label="Access variable R|<local>/x|"];
62 [shape=box label="Type operator: x is String"]; 62 [shape=box label="Type operator: x is String"];
63 [shape=box label="Exit block"]; 63 [shape=box label="Exit block"];
64 [shape=box label="Exit function testFor"]; 64 [shape=box label="Exit function testFor" style="filled"];
36 -> {37}; 36 -> {37};
37 -> {38}; 37 -> {38};
@@ -140,8 +140,8 @@ subgraph testFor {
63 -> {64}; 63 -> {64};
} }
subgraph testWhileTrue { subgraph cluster_testWhileTrue {
65 [shape=box label="Enter function testWhileTrue"]; 65 [shape=box label="Enter function testWhileTrue" style="filled"];
66 [shape=box label="Enter block"]; 66 [shape=box label="Enter block"];
67 [shape=box label="Enter while loop"]; 67 [shape=box label="Enter while loop"];
68 [shape=box label="Enter loop condition"]; 68 [shape=box label="Enter loop condition"];
@@ -156,7 +156,7 @@ subgraph testWhileTrue {
77 [shape=box label="Exit whileloop[DEAD]"]; 77 [shape=box label="Exit whileloop[DEAD]"];
78 [shape=box label="Const: Int(1)[DEAD]"]; 78 [shape=box label="Const: Int(1)[DEAD]"];
79 [shape=box label="Exit block[DEAD]"]; 79 [shape=box label="Exit block[DEAD]"];
80 [shape=box label="Exit function testWhileTrue[DEAD]"]; 80 [shape=box label="Exit function testWhileTrue[DEAD]" style="filled"];
65 -> {66}; 65 -> {66};
66 -> {67}; 66 -> {67};
@@ -176,8 +176,8 @@ subgraph testWhileTrue {
79 -> {80} [style=dotted]; 79 -> {80} [style=dotted];
} }
subgraph testWhileTrueWithBreak { subgraph cluster_testWhileTrueWithBreak {
81 [shape=box label="Enter function testWhileTrueWithBreak"]; 81 [shape=box label="Enter function testWhileTrueWithBreak" style="filled"];
82 [shape=box label="Enter block"]; 82 [shape=box label="Enter block"];
83 [shape=box label="Enter while loop"]; 83 [shape=box label="Enter while loop"];
84 [shape=box label="Enter loop condition"]; 84 [shape=box label="Enter loop condition"];
@@ -206,7 +206,7 @@ subgraph testWhileTrueWithBreak {
107 [shape=box label="Exit whileloop"]; 107 [shape=box label="Exit whileloop"];
108 [shape=box label="Const: Int(1)"]; 108 [shape=box label="Const: Int(1)"];
109 [shape=box label="Exit block"]; 109 [shape=box label="Exit block"];
110 [shape=box label="Exit function testWhileTrueWithBreak"]; 110 [shape=box label="Exit function testWhileTrueWithBreak" style="filled"];
81 -> {82}; 81 -> {82};
82 -> {83}; 82 -> {83};
@@ -241,8 +241,8 @@ subgraph testWhileTrueWithBreak {
109 -> {110}; 109 -> {110};
} }
subgraph testWhileFalse { subgraph cluster_testWhileFalse {
111 [shape=box label="Enter function testWhileFalse"]; 111 [shape=box label="Enter function testWhileFalse" style="filled"];
112 [shape=box label="Enter block"]; 112 [shape=box label="Enter block"];
113 [shape=box label="Enter while loop"]; 113 [shape=box label="Enter while loop"];
114 [shape=box label="Enter loop condition"]; 114 [shape=box label="Enter loop condition"];
@@ -257,7 +257,7 @@ subgraph testWhileFalse {
123 [shape=box label="Exit whileloop"]; 123 [shape=box label="Exit whileloop"];
124 [shape=box label="Const: Int(1)"]; 124 [shape=box label="Const: Int(1)"];
125 [shape=box label="Exit block"]; 125 [shape=box label="Exit block"];
126 [shape=box label="Exit function testWhileFalse"]; 126 [shape=box label="Exit function testWhileFalse" style="filled"];
111 -> {112}; 111 -> {112};
112 -> {113}; 112 -> {113};
@@ -277,8 +277,8 @@ subgraph testWhileFalse {
125 -> {126}; 125 -> {126};
} }
subgraph testDoWhileTrue { subgraph cluster_testDoWhileTrue {
127 [shape=box label="Enter function testDoWhileTrue"]; 127 [shape=box label="Enter function testDoWhileTrue" style="filled"];
128 [shape=box label="Enter block"]; 128 [shape=box label="Enter block"];
129 [shape=box label="Enter do-while loop"]; 129 [shape=box label="Enter do-while loop"];
130 [shape=box label="Enter loop block"]; 130 [shape=box label="Enter loop block"];
@@ -293,7 +293,7 @@ subgraph testDoWhileTrue {
139 [shape=box label="Exit do-whileloop[DEAD]"]; 139 [shape=box label="Exit do-whileloop[DEAD]"];
140 [shape=box label="Const: Int(1)[DEAD]"]; 140 [shape=box label="Const: Int(1)[DEAD]"];
141 [shape=box label="Exit block[DEAD]"]; 141 [shape=box label="Exit block[DEAD]"];
142 [shape=box label="Exit function testDoWhileTrue[DEAD]"]; 142 [shape=box label="Exit function testDoWhileTrue[DEAD]" style="filled"];
127 -> {128}; 127 -> {128};
128 -> {129}; 128 -> {129};
@@ -313,8 +313,8 @@ subgraph testDoWhileTrue {
141 -> {142} [style=dotted]; 141 -> {142} [style=dotted];
} }
subgraph testDoWhileTrueWithBreak { subgraph cluster_testDoWhileTrueWithBreak {
143 [shape=box label="Enter function testDoWhileTrueWithBreak"]; 143 [shape=box label="Enter function testDoWhileTrueWithBreak" style="filled"];
144 [shape=box label="Enter block"]; 144 [shape=box label="Enter block"];
145 [shape=box label="Enter do-while loop"]; 145 [shape=box label="Enter do-while loop"];
146 [shape=box label="Enter loop block"]; 146 [shape=box label="Enter loop block"];
@@ -343,7 +343,7 @@ subgraph testDoWhileTrueWithBreak {
169 [shape=box label="Exit do-whileloop"]; 169 [shape=box label="Exit do-whileloop"];
170 [shape=box label="Const: Int(1)"]; 170 [shape=box label="Const: Int(1)"];
171 [shape=box label="Exit block"]; 171 [shape=box label="Exit block"];
172 [shape=box label="Exit function testDoWhileTrueWithBreak"]; 172 [shape=box label="Exit function testDoWhileTrueWithBreak" style="filled"];
143 -> {144}; 143 -> {144};
144 -> {145}; 144 -> {145};
@@ -378,8 +378,8 @@ subgraph testDoWhileTrueWithBreak {
171 -> {172}; 171 -> {172};
} }
subgraph testDoWhileFalse { subgraph cluster_testDoWhileFalse {
173 [shape=box label="Enter function testDoWhileFalse"]; 173 [shape=box label="Enter function testDoWhileFalse" style="filled"];
174 [shape=box label="Enter block"]; 174 [shape=box label="Enter block"];
175 [shape=box label="Enter do-while loop"]; 175 [shape=box label="Enter do-while loop"];
176 [shape=box label="Enter loop block"]; 176 [shape=box label="Enter loop block"];
@@ -393,7 +393,7 @@ subgraph testDoWhileFalse {
184 [shape=box label="Exit do-whileloop"]; 184 [shape=box label="Exit do-whileloop"];
185 [shape=box label="Const: Int(1)"]; 185 [shape=box label="Const: Int(1)"];
186 [shape=box label="Exit block"]; 186 [shape=box label="Exit block"];
187 [shape=box label="Exit function testDoWhileFalse"]; 187 [shape=box label="Exit function testDoWhileFalse" style="filled"];
188 [shape=box label="Stub[DEAD]"]; 188 [shape=box label="Stub[DEAD]"];
173 -> {174}; 173 -> {174};
@@ -1,12 +1,12 @@
digraph propertiesAndInitBlocks_kt { digraph propertiesAndInitBlocks_kt {
graph [splines=ortho] graph [splines=ortho, nodesep=3]
subgraph run { subgraph cluster_run {
0 [shape=box label="Enter function run"]; 0 [shape=box label="Enter function run" style="filled"];
1 [shape=box label="Enter block"]; 1 [shape=box label="Enter block"];
2 [shape=box label="Function call: R|<local>/block|.R|FakeOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()"]; 2 [shape=box label="Function call: R|<local>/block|.R|FakeOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()"];
3 [shape=box label="Exit block"]; 3 [shape=box label="Exit block"];
4 [shape=box label="Exit function run"]; 4 [shape=box label="Exit function run" style="filled"];
0 -> {1}; 0 -> {1};
1 -> {2}; 1 -> {2};
@@ -14,23 +14,23 @@ subgraph run {
3 -> {4}; 3 -> {4};
} }
subgraph val_x1 { subgraph cluster_val_x1 {
5 [shape=box label="Enter property"]; 5 [shape=box label="Enter property" style="filled"];
6 [shape=box label="Const: Int(1)"]; 6 [shape=box label="Const: Int(1)"];
7 [shape=box label="Exit property"]; 7 [shape=box label="Exit property" style="filled"];
5 -> {6}; 5 -> {6};
6 -> {7}; 6 -> {7};
} }
subgraph <getter> { subgraph cluster__getter_ {
8 [shape=box label="Enter function getter"]; 8 [shape=box label="Enter function getter" style="filled"];
9 [shape=box label="Enter block"]; 9 [shape=box label="Enter block"];
10 [shape=box label="Const: Int(1)"]; 10 [shape=box label="Const: Int(1)"];
11 [shape=box label="Jump: ^ Int(1)"]; 11 [shape=box label="Jump: ^ Int(1)"];
12 [shape=box label="Stub[DEAD]"]; 12 [shape=box label="Stub[DEAD]"];
13 [shape=box label="Exit block[DEAD]"]; 13 [shape=box label="Exit block[DEAD]"];
14 [shape=box label="Exit function getter[DEAD]"]; 14 [shape=box label="Exit function getter[DEAD]" style="filled"];
8 -> {9}; 8 -> {9};
9 -> {10}; 9 -> {10};
@@ -40,13 +40,13 @@ subgraph <getter> {
13 -> {14} [style=dotted]; 13 -> {14} [style=dotted];
} }
subgraph <setter> { subgraph cluster__setter_ {
15 [shape=box label="Enter function setter"]; 15 [shape=box label="Enter function setter" style="filled"];
16 [shape=box label="Enter block"]; 16 [shape=box label="Enter block"];
17 [shape=box label="Const: Int(1)"]; 17 [shape=box label="Const: Int(1)"];
18 [shape=box label="Assignmenet: F|/x2|"]; 18 [shape=box label="Assignmenet: F|/x2|"];
19 [shape=box label="Exit block"]; 19 [shape=box label="Exit block"];
20 [shape=box label="Exit function setter"]; 20 [shape=box label="Exit function setter" style="filled"];
15 -> {16}; 15 -> {16};
16 -> {17}; 16 -> {17};
@@ -55,17 +55,17 @@ subgraph <setter> {
19 -> {20}; 19 -> {20};
} }
subgraph val_x2 { subgraph cluster_val_x2 {
21 [shape=box label="Enter property"]; 21 [shape=box label="Enter property" style="filled"];
22 [shape=box label="Const: Int(1)"]; 22 [shape=box label="Const: Int(1)"];
23 [shape=box label="Exit property"]; 23 [shape=box label="Exit property" style="filled"];
21 -> {22}; 21 -> {22};
22 -> {23}; 22 -> {23};
} }
subgraph foo { subgraph cluster_foo {
24 [shape=box label="Enter function foo"]; 24 [shape=box label="Enter function foo" style="filled"];
25 [shape=box label="Enter block"]; 25 [shape=box label="Enter block"];
26 [shape=box label="Const: Int(1)"]; 26 [shape=box label="Const: Int(1)"];
27 [shape=box label="Const: Int(1)"]; 27 [shape=box label="Const: Int(1)"];
@@ -75,7 +75,7 @@ subgraph foo {
31 [shape=box label="Throw: throw <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()"]; 31 [shape=box label="Throw: throw <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()"];
32 [shape=box label="Stub[DEAD]"]; 32 [shape=box label="Stub[DEAD]"];
33 [shape=box label="Exit block[DEAD]"]; 33 [shape=box label="Exit block[DEAD]"];
34 [shape=box label="Exit function foo[DEAD]"]; 34 [shape=box label="Exit function foo[DEAD]" style="filled"];
24 -> {25}; 24 -> {25};
25 -> {26}; 25 -> {26};
@@ -89,14 +89,14 @@ subgraph foo {
33 -> {34} [style=dotted]; 33 -> {34} [style=dotted];
} }
subgraph <init> { subgraph cluster__init_ {
35 [shape=box label="Enter function <init>"]; 35 [shape=box label="Enter function <init>" style="filled"];
36 [shape=box label="Exit function <init>"]; 36 [shape=box label="Exit function <init>" style="filled"];
35 -> {36}; 35 -> {36};
} }
subgraph <getter> { subgraph cluster__getter_ {
37 [shape=box label="Enter init block"]; 37 [shape=box label="Enter init block"];
38 [shape=box label="Enter block"]; 38 [shape=box label="Enter block"];
39 [shape=box label="Function call: <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()"]; 39 [shape=box label="Function call: <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()"];
@@ -104,10 +104,10 @@ subgraph <getter> {
41 [shape=box label="Stub[DEAD]"]; 41 [shape=box label="Stub[DEAD]"];
42 [shape=box label="Exit block[DEAD]"]; 42 [shape=box label="Exit block[DEAD]"];
43 [shape=box label="Exit init block[DEAD]"]; 43 [shape=box label="Exit init block[DEAD]"];
44 [shape=box label="Enter function getter"]; 44 [shape=box label="Enter function getter" style="filled"];
45 [shape=box label="Enter block"]; 45 [shape=box label="Enter block"];
46 [shape=box label="Exit block"]; 46 [shape=box label="Exit block"];
47 [shape=box label="Exit function getter"]; 47 [shape=box label="Exit function getter" style="filled"];
37 -> {38}; 37 -> {38};
38 -> {39}; 38 -> {39};
@@ -120,14 +120,14 @@ subgraph <getter> {
46 -> {47}; 46 -> {47};
} }
subgraph <init> { subgraph cluster__init_ {
48 [shape=box label="Enter function <init>"]; 48 [shape=box label="Enter function <init>" style="filled"];
49 [shape=box label="Exit function <init>"]; 49 [shape=box label="Exit function <init>" style="filled"];
48 -> {49}; 48 -> {49};
} }
subgraph val_x3 { subgraph cluster_val_x3 {
50 [shape=box label="Enter init block"]; 50 [shape=box label="Enter init block"];
51 [shape=box label="Enter block"]; 51 [shape=box label="Enter block"];
52 [shape=box label="Function call: <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()"]; 52 [shape=box label="Function call: <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()"];
@@ -136,7 +136,7 @@ subgraph val_x3 {
55 [shape=box label="Const: Int(1)[DEAD]"]; 55 [shape=box label="Const: Int(1)[DEAD]"];
56 [shape=box label="Exit block[DEAD]"]; 56 [shape=box label="Exit block[DEAD]"];
57 [shape=box label="Exit init block[DEAD]"]; 57 [shape=box label="Exit init block[DEAD]"];
58 [shape=box label="Enter property"]; 58 [shape=box label="Enter property" style="filled"];
59 [shape=box label="Enter function anonymousFunction"]; 59 [shape=box label="Enter function anonymousFunction"];
60 [shape=box label="Enter block"]; 60 [shape=box label="Enter block"];
61 [shape=box label="Function call: <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()"]; 61 [shape=box label="Function call: <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()"];
@@ -165,7 +165,7 @@ subgraph val_x3 {
throw <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#() throw <Ambiguity: Exception, [java/lang/Exception.Exception, java/lang/Exception.Exception]>#()
} }
)[DEAD]"]; )[DEAD]"];
67 [shape=box label="Exit property[DEAD]"]; 67 [shape=box label="Exit property[DEAD]" style="filled"];
50 -> {51}; 50 -> {51};
51 -> {52}; 51 -> {52};
@@ -185,8 +185,8 @@ subgraph val_x3 {
66 -> {67} [style=dotted]; 66 -> {67} [style=dotted];
} }
subgraph val_x4 { subgraph cluster_val_x4 {
68 [shape=box label="Enter property"]; 68 [shape=box label="Enter property" style="filled"];
69 [shape=box label="Try expression enter"]; 69 [shape=box label="Try expression enter"];
70 [shape=box label="Try main block enter"]; 70 [shape=box label="Try main block enter"];
71 [shape=box label="Enter block"]; 71 [shape=box label="Enter block"];
@@ -204,7 +204,7 @@ subgraph val_x4 {
83 [shape=box label="Exit block"]; 83 [shape=box label="Exit block"];
84 [shape=box label="Catch exit"]; 84 [shape=box label="Catch exit"];
85 [shape=box label="Try expression exit"]; 85 [shape=box label="Try expression exit"];
86 [shape=box label="Exit property"]; 86 [shape=box label="Exit property" style="filled"];
68 -> {69}; 68 -> {69};
69 -> {70}; 69 -> {70};
+7 -7
View File
@@ -1,19 +1,19 @@
digraph simple_kt { digraph simple_kt {
graph [splines=ortho] graph [splines=ortho, nodesep=3]
subgraph foo { subgraph cluster_foo {
0 [shape=box label="Enter function foo"]; 0 [shape=box label="Enter function foo" style="filled"];
1 [shape=box label="Enter block"]; 1 [shape=box label="Enter block"];
2 [shape=box label="Exit block"]; 2 [shape=box label="Exit block"];
3 [shape=box label="Exit function foo"]; 3 [shape=box label="Exit function foo" style="filled"];
0 -> {1}; 0 -> {1};
1 -> {2}; 1 -> {2};
2 -> {3}; 2 -> {3};
} }
subgraph test { subgraph cluster_test {
4 [shape=box label="Enter function test"]; 4 [shape=box label="Enter function test" style="filled"];
5 [shape=box label="Enter block"]; 5 [shape=box label="Enter block"];
6 [shape=box label="Const: Int(1)"]; 6 [shape=box label="Const: Int(1)"];
7 [shape=box label="Variable declaration: lval x: R|kotlin/Int|"]; 7 [shape=box label="Variable declaration: lval x: R|kotlin/Int|"];
@@ -23,7 +23,7 @@ subgraph test {
11 [shape=box label="Variable declaration: lval y: R|kotlin/Int|"]; 11 [shape=box label="Variable declaration: lval y: R|kotlin/Int|"];
12 [shape=box label="Function call: R|/foo|()"]; 12 [shape=box label="Function call: R|/foo|()"];
13 [shape=box label="Exit block"]; 13 [shape=box label="Exit block"];
14 [shape=box label="Exit function test"]; 14 [shape=box label="Exit function test" style="filled"];
4 -> {5}; 4 -> {5};
5 -> {6}; 5 -> {6};
+10 -10
View File
@@ -1,8 +1,8 @@
digraph tryCatch_kt { digraph tryCatch_kt {
graph [splines=ortho] graph [splines=ortho, nodesep=3]
subgraph test_1 { subgraph cluster_test_1 {
0 [shape=box label="Enter function test_1"]; 0 [shape=box label="Enter function test_1" style="filled"];
1 [shape=box label="Enter block"]; 1 [shape=box label="Enter block"];
2 [shape=box label="Try expression enter"]; 2 [shape=box label="Try expression enter"];
3 [shape=box label="Try main block enter"]; 3 [shape=box label="Try main block enter"];
@@ -25,7 +25,7 @@ subgraph test_1 {
20 [shape=box label="Catch exit"]; 20 [shape=box label="Catch exit"];
21 [shape=box label="Try expression exit"]; 21 [shape=box label="Try expression exit"];
22 [shape=box label="Exit block"]; 22 [shape=box label="Exit block"];
23 [shape=box label="Exit function test_1"]; 23 [shape=box label="Exit function test_1" style="filled"];
0 -> {1}; 0 -> {1};
1 -> {2}; 1 -> {2};
@@ -52,8 +52,8 @@ subgraph test_1 {
22 -> {23}; 22 -> {23};
} }
subgraph test_2 { subgraph cluster_test_2 {
24 [shape=box label="Enter function test_2"]; 24 [shape=box label="Enter function test_2" style="filled"];
25 [shape=box label="Enter block"]; 25 [shape=box label="Enter block"];
26 [shape=box label="Try expression enter"]; 26 [shape=box label="Try expression enter"];
27 [shape=box label="Try main block enter"]; 27 [shape=box label="Try main block enter"];
@@ -69,7 +69,7 @@ subgraph test_2 {
37 [shape=box label="Try expression exit"]; 37 [shape=box label="Try expression exit"];
38 [shape=box label="Variable declaration: lval x: R|kotlin/Int|"]; 38 [shape=box label="Variable declaration: lval x: R|kotlin/Int|"];
39 [shape=box label="Exit block"]; 39 [shape=box label="Exit block"];
40 [shape=box label="Exit function test_2"]; 40 [shape=box label="Exit function test_2" style="filled"];
24 -> {25}; 24 -> {25};
25 -> {26}; 25 -> {26};
@@ -89,8 +89,8 @@ subgraph test_2 {
39 -> {40}; 39 -> {40};
} }
subgraph test_3 { subgraph cluster_test_3 {
41 [shape=box label="Enter function test_3"]; 41 [shape=box label="Enter function test_3" style="filled"];
42 [shape=box label="Enter block"]; 42 [shape=box label="Enter block"];
43 [shape=box label="Enter while loop"]; 43 [shape=box label="Enter while loop"];
44 [shape=box label="Enter loop condition"]; 44 [shape=box label="Enter loop condition"];
@@ -158,7 +158,7 @@ subgraph test_3 {
106 [shape=box label="Const: Int(3)"]; 106 [shape=box label="Const: Int(3)"];
107 [shape=box label="Variable declaration: lval z: R|kotlin/Int|"]; 107 [shape=box label="Variable declaration: lval z: R|kotlin/Int|"];
108 [shape=box label="Exit block"]; 108 [shape=box label="Exit block"];
109 [shape=box label="Exit function test_3"]; 109 [shape=box label="Exit function test_3" style="filled"];
41 -> {42}; 41 -> {42};
42 -> {43}; 42 -> {43};
+7 -7
View File
@@ -1,8 +1,8 @@
digraph when_kt { digraph when_kt {
graph [splines=ortho] graph [splines=ortho, nodesep=3]
subgraph test_1 { subgraph cluster_test_1 {
0 [shape=box label="Enter function test_1"]; 0 [shape=box label="Enter function test_1" style="filled"];
1 [shape=box label="Enter block"]; 1 [shape=box label="Enter block"];
2 [shape=box label="Enter when"]; 2 [shape=box label="Enter when"];
3 [shape=box label="Enter when branch condition "]; 3 [shape=box label="Enter when branch condition "];
@@ -46,7 +46,7 @@ subgraph test_1 {
41 [shape=box label="Exit when"]; 41 [shape=box label="Exit when"];
42 [shape=box label="Variable declaration: lval y: R|kotlin/Int|"]; 42 [shape=box label="Variable declaration: lval y: R|kotlin/Int|"];
43 [shape=box label="Exit block"]; 43 [shape=box label="Exit block"];
44 [shape=box label="Exit function test_1"]; 44 [shape=box label="Exit function test_1" style="filled"];
0 -> {1}; 0 -> {1};
1 -> {2}; 1 -> {2};
@@ -95,8 +95,8 @@ subgraph test_1 {
43 -> {44}; 43 -> {44};
} }
subgraph test_2 { subgraph cluster_test_2 {
45 [shape=box label="Enter function test_2"]; 45 [shape=box label="Enter function test_2" style="filled"];
46 [shape=box label="Enter block"]; 46 [shape=box label="Enter block"];
47 [shape=box label="Enter when"]; 47 [shape=box label="Enter when"];
48 [shape=box label="Enter when branch condition "]; 48 [shape=box label="Enter when branch condition "];
@@ -120,7 +120,7 @@ subgraph test_2 {
66 [shape=box label="Exit when branch result"]; 66 [shape=box label="Exit when branch result"];
67 [shape=box label="Exit when"]; 67 [shape=box label="Exit when"];
68 [shape=box label="Exit block"]; 68 [shape=box label="Exit block"];
69 [shape=box label="Exit function test_2"]; 69 [shape=box label="Exit function test_2" style="filled"];
45 -> {46}; 45 -> {46};
46 -> {47}; 46 -> {47};
@@ -1,36 +1,36 @@
digraph booleanOperators_kt { digraph booleanOperators_kt {
graph [splines=ortho] graph [splines=ortho, nodesep=3]
subgraph foo { subgraph cluster_foo {
0 [shape=box label="Enter function foo"]; 0 [shape=box label="Enter function foo" style="filled"];
1 [shape=box label="Exit function foo"]; 1 [shape=box label="Exit function foo" style="filled"];
0 -> {1}; 0 -> {1};
} }
subgraph bool { subgraph cluster_bool {
2 [shape=box label="Enter function bool"]; 2 [shape=box label="Enter function bool" style="filled"];
3 [shape=box label="Exit function bool"]; 3 [shape=box label="Exit function bool" style="filled"];
2 -> {3}; 2 -> {3};
} }
subgraph bar { subgraph cluster_bar {
4 [shape=box label="Enter function bar"]; 4 [shape=box label="Enter function bar" style="filled"];
5 [shape=box label="Exit function bar"]; 5 [shape=box label="Exit function bar" style="filled"];
4 -> {5}; 4 -> {5};
} }
subgraph baz { subgraph cluster_baz {
6 [shape=box label="Enter function baz"]; 6 [shape=box label="Enter function baz" style="filled"];
7 [shape=box label="Exit function baz"]; 7 [shape=box label="Exit function baz" style="filled"];
6 -> {7}; 6 -> {7};
} }
subgraph test_1 { subgraph cluster_test_1 {
8 [shape=box label="Enter function test_1"]; 8 [shape=box label="Enter function test_1" style="filled"];
9 [shape=box label="Enter block"]; 9 [shape=box label="Enter block"];
10 [shape=box label="Enter when"]; 10 [shape=box label="Enter when"];
11 [shape=box label="Enter when branch condition "]; 11 [shape=box label="Enter when branch condition "];
@@ -58,7 +58,7 @@ subgraph test_1 {
33 [shape=box label="Exit when branch result"]; 33 [shape=box label="Exit when branch result"];
34 [shape=box label="Exit when"]; 34 [shape=box label="Exit when"];
35 [shape=box label="Exit block"]; 35 [shape=box label="Exit block"];
36 [shape=box label="Exit function test_1"]; 36 [shape=box label="Exit function test_1" style="filled"];
8 -> {9}; 8 -> {9};
9 -> {10}; 9 -> {10};
@@ -90,8 +90,8 @@ subgraph test_1 {
35 -> {36}; 35 -> {36};
} }
subgraph test_2 { subgraph cluster_test_2 {
37 [shape=box label="Enter function test_2"]; 37 [shape=box label="Enter function test_2" style="filled"];
38 [shape=box label="Enter block"]; 38 [shape=box label="Enter block"];
39 [shape=box label="Enter when"]; 39 [shape=box label="Enter when"];
40 [shape=box label="Enter when branch condition "]; 40 [shape=box label="Enter when branch condition "];
@@ -119,7 +119,7 @@ subgraph test_2 {
62 [shape=box label="Exit when branch result"]; 62 [shape=box label="Exit when branch result"];
63 [shape=box label="Exit when"]; 63 [shape=box label="Exit when"];
64 [shape=box label="Exit block"]; 64 [shape=box label="Exit block"];
65 [shape=box label="Exit function test_2"]; 65 [shape=box label="Exit function test_2" style="filled"];
37 -> {38}; 37 -> {38};
38 -> {39}; 38 -> {39};
@@ -151,8 +151,8 @@ subgraph test_2 {
64 -> {65}; 64 -> {65};
} }
subgraph test_3 { subgraph cluster_test_3 {
66 [shape=box label="Enter function test_3"]; 66 [shape=box label="Enter function test_3" style="filled"];
67 [shape=box label="Enter block"]; 67 [shape=box label="Enter block"];
68 [shape=box label="Enter when"]; 68 [shape=box label="Enter when"];
69 [shape=box label="Enter when branch condition "]; 69 [shape=box label="Enter when branch condition "];
@@ -172,7 +172,7 @@ subgraph test_3 {
83 [shape=box label="Exit when branch result"]; 83 [shape=box label="Exit when branch result"];
84 [shape=box label="Exit when"]; 84 [shape=box label="Exit when"];
85 [shape=box label="Exit block"]; 85 [shape=box label="Exit block"];
86 [shape=box label="Exit function test_3"]; 86 [shape=box label="Exit function test_3" style="filled"];
66 -> {67}; 66 -> {67};
67 -> {68}; 67 -> {68};
@@ -196,8 +196,8 @@ subgraph test_3 {
85 -> {86}; 85 -> {86};
} }
subgraph test_4 { subgraph cluster_test_4 {
87 [shape=box label="Enter function test_4"]; 87 [shape=box label="Enter function test_4" style="filled"];
88 [shape=box label="Enter block"]; 88 [shape=box label="Enter block"];
89 [shape=box label="Enter when"]; 89 [shape=box label="Enter when"];
90 [shape=box label="Enter when branch condition "]; 90 [shape=box label="Enter when branch condition "];
@@ -225,7 +225,7 @@ subgraph test_4 {
112 [shape=box label="Access variable R|<local>/x|"]; 112 [shape=box label="Access variable R|<local>/x|"];
113 [shape=box label="Access variable <Unresolved name: length>#"]; 113 [shape=box label="Access variable <Unresolved name: length>#"];
114 [shape=box label="Exit block"]; 114 [shape=box label="Exit block"];
115 [shape=box label="Exit function test_4"]; 115 [shape=box label="Exit function test_4" style="filled"];
87 -> {88}; 87 -> {88};
88 -> {89}; 88 -> {89};
@@ -257,8 +257,8 @@ subgraph test_4 {
114 -> {115}; 114 -> {115};
} }
subgraph test_5 { subgraph cluster_test_5 {
116 [shape=box label="Enter function test_5"]; 116 [shape=box label="Enter function test_5" style="filled"];
117 [shape=box label="Enter block"]; 117 [shape=box label="Enter block"];
118 [shape=box label="Enter when"]; 118 [shape=box label="Enter when"];
119 [shape=box label="Enter when branch condition "]; 119 [shape=box label="Enter when branch condition "];
@@ -282,7 +282,7 @@ subgraph test_5 {
137 [shape=box label="Exit when branch result"]; 137 [shape=box label="Exit when branch result"];
138 [shape=box label="Exit when"]; 138 [shape=box label="Exit when"];
139 [shape=box label="Exit block"]; 139 [shape=box label="Exit block"];
140 [shape=box label="Exit function test_5"]; 140 [shape=box label="Exit function test_5" style="filled"];
116 -> {117}; 116 -> {117};
117 -> {118}; 117 -> {118};
@@ -310,8 +310,8 @@ subgraph test_5 {
139 -> {140}; 139 -> {140};
} }
subgraph test_6 { subgraph cluster_test_6 {
141 [shape=box label="Enter function test_6"]; 141 [shape=box label="Enter function test_6" style="filled"];
142 [shape=box label="Enter block"]; 142 [shape=box label="Enter block"];
143 [shape=box label="Enter when"]; 143 [shape=box label="Enter when"];
144 [shape=box label="Enter when branch condition "]; 144 [shape=box label="Enter when branch condition "];
@@ -336,7 +336,7 @@ subgraph test_6 {
163 [shape=box label="Exit when branch result"]; 163 [shape=box label="Exit when branch result"];
164 [shape=box label="Exit when"]; 164 [shape=box label="Exit when"];
165 [shape=box label="Exit block"]; 165 [shape=box label="Exit block"];
166 [shape=box label="Exit function test_6"]; 166 [shape=box label="Exit function test_6" style="filled"];
141 -> {142}; 141 -> {142};
142 -> {143}; 142 -> {143};
@@ -366,8 +366,8 @@ subgraph test_6 {
165 -> {166}; 165 -> {166};
} }
subgraph test_7 { subgraph cluster_test_7 {
167 [shape=box label="Enter function test_7"]; 167 [shape=box label="Enter function test_7" style="filled"];
168 [shape=box label="Enter block"]; 168 [shape=box label="Enter block"];
169 [shape=box label="Enter when"]; 169 [shape=box label="Enter when"];
170 [shape=box label="Enter when branch condition "]; 170 [shape=box label="Enter when branch condition "];
@@ -391,7 +391,7 @@ subgraph test_7 {
188 [shape=box label="Exit when branch result"]; 188 [shape=box label="Exit when branch result"];
189 [shape=box label="Exit when"]; 189 [shape=box label="Exit when"];
190 [shape=box label="Exit block"]; 190 [shape=box label="Exit block"];
191 [shape=box label="Exit function test_7"]; 191 [shape=box label="Exit function test_7" style="filled"];
167 -> {168}; 167 -> {168};
168 -> {169}; 168 -> {169};
@@ -1,22 +1,22 @@
digraph boundSmartcasts_kt { digraph boundSmartcasts_kt {
graph [splines=ortho] graph [splines=ortho, nodesep=3]
subgraph foo { subgraph cluster_foo {
0 [shape=box label="Enter function foo"]; 0 [shape=box label="Enter function foo" style="filled"];
1 [shape=box label="Exit function foo"]; 1 [shape=box label="Exit function foo" style="filled"];
0 -> {1}; 0 -> {1};
} }
subgraph bar { subgraph cluster_bar {
2 [shape=box label="Enter function bar"]; 2 [shape=box label="Enter function bar" style="filled"];
3 [shape=box label="Exit function bar"]; 3 [shape=box label="Exit function bar" style="filled"];
2 -> {3}; 2 -> {3};
} }
subgraph test_1 { subgraph cluster_test_1 {
4 [shape=box label="Enter function test_1"]; 4 [shape=box label="Enter function test_1" style="filled"];
5 [shape=box label="Enter block"]; 5 [shape=box label="Enter block"];
6 [shape=box label="Access variable R|<local>/x|"]; 6 [shape=box label="Access variable R|<local>/x|"];
7 [shape=box label="Variable declaration: lval y: R|kotlin/Any|"]; 7 [shape=box label="Variable declaration: lval y: R|kotlin/Any|"];
@@ -39,7 +39,7 @@ subgraph test_1 {
24 [shape=box label="Exit when branch result"]; 24 [shape=box label="Exit when branch result"];
25 [shape=box label="Exit when"]; 25 [shape=box label="Exit when"];
26 [shape=box label="Exit block"]; 26 [shape=box label="Exit block"];
27 [shape=box label="Exit function test_1"]; 27 [shape=box label="Exit function test_1" style="filled"];
4 -> {5}; 4 -> {5};
5 -> {6}; 5 -> {6};
@@ -66,8 +66,8 @@ subgraph test_1 {
26 -> {27}; 26 -> {27};
} }
subgraph test_2 { subgraph cluster_test_2 {
28 [shape=box label="Enter function test_2"]; 28 [shape=box label="Enter function test_2" style="filled"];
29 [shape=box label="Enter block"]; 29 [shape=box label="Enter block"];
30 [shape=box label="Access variable R|<local>/x|"]; 30 [shape=box label="Access variable R|<local>/x|"];
31 [shape=box label="Variable declaration: lval y: R|kotlin/Any|"]; 31 [shape=box label="Variable declaration: lval y: R|kotlin/Any|"];
@@ -90,7 +90,7 @@ subgraph test_2 {
48 [shape=box label="Exit when branch result"]; 48 [shape=box label="Exit when branch result"];
49 [shape=box label="Exit when"]; 49 [shape=box label="Exit when"];
50 [shape=box label="Exit block"]; 50 [shape=box label="Exit block"];
51 [shape=box label="Exit function test_2"]; 51 [shape=box label="Exit function test_2" style="filled"];
28 -> {29}; 28 -> {29};
29 -> {30}; 29 -> {30};
@@ -117,8 +117,8 @@ subgraph test_2 {
50 -> {51}; 50 -> {51};
} }
subgraph test_3 { subgraph cluster_test_3 {
52 [shape=box label="Enter function test_3"]; 52 [shape=box label="Enter function test_3" style="filled"];
53 [shape=box label="Enter block"]; 53 [shape=box label="Enter block"];
54 [shape=box label="Access variable R|<local>/x|"]; 54 [shape=box label="Access variable R|<local>/x|"];
55 [shape=box label="Variable declaration: lvar z: R|kotlin/Any|"]; 55 [shape=box label="Variable declaration: lvar z: R|kotlin/Any|"];
@@ -157,7 +157,7 @@ subgraph test_3 {
88 [shape=box label="Exit when branch result"]; 88 [shape=box label="Exit when branch result"];
89 [shape=box label="Exit when"]; 89 [shape=box label="Exit when"];
90 [shape=box label="Exit block"]; 90 [shape=box label="Exit block"];
91 [shape=box label="Exit function test_3"]; 91 [shape=box label="Exit function test_3" style="filled"];
52 -> {53}; 52 -> {53};
53 -> {54}; 53 -> {54};
@@ -200,8 +200,8 @@ subgraph test_3 {
90 -> {91}; 90 -> {91};
} }
subgraph test_4 { subgraph cluster_test_4 {
92 [shape=box label="Enter function test_4"]; 92 [shape=box label="Enter function test_4" style="filled"];
93 [shape=box label="Enter block"]; 93 [shape=box label="Enter block"];
94 [shape=box label="Const: Int(1)"]; 94 [shape=box label="Const: Int(1)"];
95 [shape=box label="Variable declaration: lvar x: R|kotlin/Any|"]; 95 [shape=box label="Variable declaration: lvar x: R|kotlin/Any|"];
@@ -232,7 +232,7 @@ subgraph test_4 {
120 [shape=box label="Exit when branch result"]; 120 [shape=box label="Exit when branch result"];
121 [shape=box label="Exit when"]; 121 [shape=box label="Exit when"];
122 [shape=box label="Exit block"]; 122 [shape=box label="Exit block"];
123 [shape=box label="Exit function test_4"]; 123 [shape=box label="Exit function test_4" style="filled"];
92 -> {93}; 92 -> {93};
93 -> {94}; 93 -> {94};
+13 -13
View File
@@ -1,15 +1,15 @@
digraph casts_kt { digraph casts_kt {
graph [splines=ortho] graph [splines=ortho, nodesep=3]
subgraph test_1 { subgraph cluster_test_1 {
0 [shape=box label="Enter function test_1"]; 0 [shape=box label="Enter function test_1" style="filled"];
1 [shape=box label="Enter block"]; 1 [shape=box label="Enter block"];
2 [shape=box label="Access variable R|<local>/x|"]; 2 [shape=box label="Access variable R|<local>/x|"];
3 [shape=box label="Type operator: x as String"]; 3 [shape=box label="Type operator: x as String"];
4 [shape=box label="Access variable R|<local>/x|"]; 4 [shape=box label="Access variable R|<local>/x|"];
5 [shape=box label="Access variable R|kotlin/String.length|"]; 5 [shape=box label="Access variable R|kotlin/String.length|"];
6 [shape=box label="Exit block"]; 6 [shape=box label="Exit block"];
7 [shape=box label="Exit function test_1"]; 7 [shape=box label="Exit function test_1" style="filled"];
0 -> {1}; 0 -> {1};
1 -> {2}; 1 -> {2};
@@ -20,8 +20,8 @@ subgraph test_1 {
6 -> {7}; 6 -> {7};
} }
subgraph test_2 { subgraph cluster_test_2 {
8 [shape=box label="Enter function test_2"]; 8 [shape=box label="Enter function test_2" style="filled"];
9 [shape=box label="Enter block"]; 9 [shape=box label="Enter block"];
10 [shape=box label="Enter when"]; 10 [shape=box label="Enter when"];
11 [shape=box label="Enter when branch condition "]; 11 [shape=box label="Enter when branch condition "];
@@ -42,7 +42,7 @@ subgraph test_2 {
26 [shape=box label="Access variable R|<local>/x|"]; 26 [shape=box label="Access variable R|<local>/x|"];
27 [shape=box label="Function call: R|<local>/x|.R|kotlin/Boolean.not|()"]; 27 [shape=box label="Function call: R|<local>/x|.R|kotlin/Boolean.not|()"];
28 [shape=box label="Exit block"]; 28 [shape=box label="Exit block"];
29 [shape=box label="Exit function test_2"]; 29 [shape=box label="Exit function test_2" style="filled"];
8 -> {9}; 8 -> {9};
9 -> {10}; 9 -> {10};
@@ -67,8 +67,8 @@ subgraph test_2 {
28 -> {29}; 28 -> {29};
} }
subgraph test_3 { subgraph cluster_test_3 {
30 [shape=box label="Enter function test_3"]; 30 [shape=box label="Enter function test_3" style="filled"];
31 [shape=box label="Enter block"]; 31 [shape=box label="Enter block"];
32 [shape=box label="Enter when"]; 32 [shape=box label="Enter when"];
33 [shape=box label="Enter when branch condition "]; 33 [shape=box label="Enter when branch condition "];
@@ -139,7 +139,7 @@ subgraph test_3 {
98 [shape=box label="Access variable R|<local>/x|"]; 98 [shape=box label="Access variable R|<local>/x|"];
99 [shape=box label="Function call: R|<local>/x|.<Unresolved name: not>#()"]; 99 [shape=box label="Function call: R|<local>/x|.<Unresolved name: not>#()"];
100 [shape=box label="Exit block"]; 100 [shape=box label="Exit block"];
101 [shape=box label="Exit function test_3"]; 101 [shape=box label="Exit function test_3" style="filled"];
30 -> {31}; 30 -> {31};
31 -> {32}; 31 -> {32};
@@ -214,8 +214,8 @@ subgraph test_3 {
100 -> {101}; 100 -> {101};
} }
subgraph test_4 { subgraph cluster_test_4 {
102 [shape=box label="Enter function test_4"]; 102 [shape=box label="Enter function test_4" style="filled"];
103 [shape=box label="Enter block"]; 103 [shape=box label="Enter block"];
104 [shape=box label="Enter when"]; 104 [shape=box label="Enter when"];
105 [shape=box label="Enter when branch condition "]; 105 [shape=box label="Enter when branch condition "];
@@ -262,7 +262,7 @@ subgraph test_4 {
146 [shape=box label="Access variable R|<local>/b|"]; 146 [shape=box label="Access variable R|<local>/b|"];
147 [shape=box label="Function call: R|<local>/b|.<Unresolved name: not>#()"]; 147 [shape=box label="Function call: R|<local>/b|.<Unresolved name: not>#()"];
148 [shape=box label="Exit block"]; 148 [shape=box label="Exit block"];
149 [shape=box label="Exit function test_4"]; 149 [shape=box label="Exit function test_4" style="filled"];
102 -> {103}; 102 -> {103};
103 -> {104}; 103 -> {104};
+10 -10
View File
@@ -1,22 +1,22 @@
digraph elvis_kt { digraph elvis_kt {
graph [splines=ortho] graph [splines=ortho, nodesep=3]
subgraph foo { subgraph cluster_foo {
0 [shape=box label="Enter function foo"]; 0 [shape=box label="Enter function foo" style="filled"];
1 [shape=box label="Exit function foo"]; 1 [shape=box label="Exit function foo" style="filled"];
0 -> {1}; 0 -> {1};
} }
subgraph val_b { subgraph cluster_val_b {
2 [shape=box label="Enter property"]; 2 [shape=box label="Enter property" style="filled"];
3 [shape=box label="Exit property"]; 3 [shape=box label="Exit property" style="filled"];
2 -> {3}; 2 -> {3};
} }
subgraph test_1 { subgraph cluster_test_1 {
4 [shape=box label="Enter function test_1"]; 4 [shape=box label="Enter function test_1" style="filled"];
5 [shape=box label="Enter block"]; 5 [shape=box label="Enter block"];
6 [shape=box label="Enter when"]; 6 [shape=box label="Enter when"];
7 [shape=box label="Enter when branch condition "]; 7 [shape=box label="Enter when branch condition "];
@@ -53,7 +53,7 @@ subgraph test_1 {
38 [shape=box label="Exit when branch result"]; 38 [shape=box label="Exit when branch result"];
39 [shape=box label="Exit when"]; 39 [shape=box label="Exit when"];
40 [shape=box label="Exit block"]; 40 [shape=box label="Exit block"];
41 [shape=box label="Exit function test_1"]; 41 [shape=box label="Exit function test_1" style="filled"];
4 -> {5}; 4 -> {5};
5 -> {6}; 5 -> {6};
@@ -1,15 +1,15 @@
digraph endlessLoops_kt { digraph endlessLoops_kt {
graph [splines=ortho] graph [splines=ortho, nodesep=3]
subgraph foo { subgraph cluster_foo {
0 [shape=box label="Enter function foo"]; 0 [shape=box label="Enter function foo" style="filled"];
1 [shape=box label="Exit function foo"]; 1 [shape=box label="Exit function foo" style="filled"];
0 -> {1}; 0 -> {1};
} }
subgraph test_1 { subgraph cluster_test_1 {
2 [shape=box label="Enter function test_1"]; 2 [shape=box label="Enter function test_1" style="filled"];
3 [shape=box label="Enter block"]; 3 [shape=box label="Enter block"];
4 [shape=box label="Enter while loop"]; 4 [shape=box label="Enter while loop"];
5 [shape=box label="Enter loop condition"]; 5 [shape=box label="Enter loop condition"];
@@ -41,7 +41,7 @@ subgraph test_1 {
31 [shape=box label="Access variable R|<local>/x|"]; 31 [shape=box label="Access variable R|<local>/x|"];
32 [shape=box label="Function call: R|<local>/x|.R|/A.foo|()"]; 32 [shape=box label="Function call: R|<local>/x|.R|/A.foo|()"];
33 [shape=box label="Exit block"]; 33 [shape=box label="Exit block"];
34 [shape=box label="Exit function test_1"]; 34 [shape=box label="Exit function test_1" style="filled"];
2 -> {3}; 2 -> {3};
3 -> {4}; 3 -> {4};
@@ -79,8 +79,8 @@ subgraph test_1 {
33 -> {34}; 33 -> {34};
} }
subgraph test_2 { subgraph cluster_test_2 {
35 [shape=box label="Enter function test_2"]; 35 [shape=box label="Enter function test_2" style="filled"];
36 [shape=box label="Enter block"]; 36 [shape=box label="Enter block"];
37 [shape=box label="Enter while loop"]; 37 [shape=box label="Enter while loop"];
38 [shape=box label="Enter loop condition"]; 38 [shape=box label="Enter loop condition"];
@@ -112,7 +112,7 @@ subgraph test_2 {
64 [shape=box label="Access variable R|<local>/x|"]; 64 [shape=box label="Access variable R|<local>/x|"];
65 [shape=box label="Function call: R|<local>/x|.R|/A.foo|()"]; 65 [shape=box label="Function call: R|<local>/x|.R|/A.foo|()"];
66 [shape=box label="Exit block"]; 66 [shape=box label="Exit block"];
67 [shape=box label="Exit function test_2"]; 67 [shape=box label="Exit function test_2" style="filled"];
35 -> {36}; 35 -> {36};
36 -> {37}; 36 -> {37};
@@ -150,8 +150,8 @@ subgraph test_2 {
66 -> {67}; 66 -> {67};
} }
subgraph test_3 { subgraph cluster_test_3 {
68 [shape=box label="Enter function test_3"]; 68 [shape=box label="Enter function test_3" style="filled"];
69 [shape=box label="Enter block"]; 69 [shape=box label="Enter block"];
70 [shape=box label="Enter while loop"]; 70 [shape=box label="Enter while loop"];
71 [shape=box label="Enter loop condition"]; 71 [shape=box label="Enter loop condition"];
@@ -198,7 +198,7 @@ subgraph test_3 {
112 [shape=box label="Access variable R|<local>/x|"]; 112 [shape=box label="Access variable R|<local>/x|"];
113 [shape=box label="Function call: R|<local>/x|.R|/A.foo|()"]; 113 [shape=box label="Function call: R|<local>/x|.R|/A.foo|()"];
114 [shape=box label="Exit block"]; 114 [shape=box label="Exit block"];
115 [shape=box label="Exit function test_3"]; 115 [shape=box label="Exit function test_3" style="filled"];
68 -> {69}; 68 -> {69};
69 -> {70}; 69 -> {70};
@@ -252,8 +252,8 @@ subgraph test_3 {
114 -> {115}; 114 -> {115};
} }
subgraph test_4 { subgraph cluster_test_4 {
116 [shape=box label="Enter function test_4"]; 116 [shape=box label="Enter function test_4" style="filled"];
117 [shape=box label="Enter block"]; 117 [shape=box label="Enter block"];
118 [shape=box label="Enter while loop"]; 118 [shape=box label="Enter while loop"];
119 [shape=box label="Enter loop condition"]; 119 [shape=box label="Enter loop condition"];
@@ -287,7 +287,7 @@ subgraph test_4 {
147 [shape=box label="Access variable R|<local>/x|"]; 147 [shape=box label="Access variable R|<local>/x|"];
148 [shape=box label="Function call: R|<local>/x|.<Unresolved name: foo>#()"]; 148 [shape=box label="Function call: R|<local>/x|.<Unresolved name: foo>#()"];
149 [shape=box label="Exit block"]; 149 [shape=box label="Exit block"];
150 [shape=box label="Exit function test_4"]; 150 [shape=box label="Exit function test_4" style="filled"];
116 -> {117}; 116 -> {117};
117 -> {118}; 117 -> {118};
@@ -328,8 +328,8 @@ subgraph test_4 {
149 -> {150}; 149 -> {150};
} }
subgraph test_5 { subgraph cluster_test_5 {
151 [shape=box label="Enter function test_5"]; 151 [shape=box label="Enter function test_5" style="filled"];
152 [shape=box label="Enter block"]; 152 [shape=box label="Enter block"];
153 [shape=box label="Enter do-while loop"]; 153 [shape=box label="Enter do-while loop"];
154 [shape=box label="Enter loop block"]; 154 [shape=box label="Enter loop block"];
@@ -361,7 +361,7 @@ subgraph test_5 {
180 [shape=box label="Access variable R|<local>/x|"]; 180 [shape=box label="Access variable R|<local>/x|"];
181 [shape=box label="Function call: R|<local>/x|.R|/A.foo|()"]; 181 [shape=box label="Function call: R|<local>/x|.R|/A.foo|()"];
182 [shape=box label="Exit block"]; 182 [shape=box label="Exit block"];
183 [shape=box label="Exit function test_5"]; 183 [shape=box label="Exit function test_5" style="filled"];
151 -> {152}; 151 -> {152};
152 -> {153}; 152 -> {153};
@@ -399,8 +399,8 @@ subgraph test_5 {
182 -> {183}; 182 -> {183};
} }
subgraph test_6 { subgraph cluster_test_6 {
184 [shape=box label="Enter function test_6"]; 184 [shape=box label="Enter function test_6" style="filled"];
185 [shape=box label="Enter block"]; 185 [shape=box label="Enter block"];
186 [shape=box label="Enter do-while loop"]; 186 [shape=box label="Enter do-while loop"];
187 [shape=box label="Enter loop block"]; 187 [shape=box label="Enter loop block"];
@@ -432,7 +432,7 @@ subgraph test_6 {
213 [shape=box label="Access variable R|<local>/x|"]; 213 [shape=box label="Access variable R|<local>/x|"];
214 [shape=box label="Function call: R|<local>/x|.R|/A.foo|()"]; 214 [shape=box label="Function call: R|<local>/x|.R|/A.foo|()"];
215 [shape=box label="Exit block"]; 215 [shape=box label="Exit block"];
216 [shape=box label="Exit function test_6"]; 216 [shape=box label="Exit function test_6" style="filled"];
184 -> {185}; 184 -> {185};
185 -> {186}; 185 -> {186};
@@ -470,8 +470,8 @@ subgraph test_6 {
215 -> {216}; 215 -> {216};
} }
subgraph test_7 { subgraph cluster_test_7 {
217 [shape=box label="Enter function test_7"]; 217 [shape=box label="Enter function test_7" style="filled"];
218 [shape=box label="Enter block"]; 218 [shape=box label="Enter block"];
219 [shape=box label="Enter do-while loop"]; 219 [shape=box label="Enter do-while loop"];
220 [shape=box label="Enter loop block"]; 220 [shape=box label="Enter loop block"];
@@ -488,7 +488,7 @@ subgraph test_7 {
231 [shape=box label="Access variable R|<local>/x|[DEAD]"]; 231 [shape=box label="Access variable R|<local>/x|[DEAD]"];
232 [shape=box label="Function call: R|<local>/x|.<Unresolved name: foo>#()[DEAD]"]; 232 [shape=box label="Function call: R|<local>/x|.<Unresolved name: foo>#()[DEAD]"];
233 [shape=box label="Exit block[DEAD]"]; 233 [shape=box label="Exit block[DEAD]"];
234 [shape=box label="Exit function test_7[DEAD]"]; 234 [shape=box label="Exit function test_7[DEAD]" style="filled"];
217 -> {218}; 217 -> {218};
218 -> {219}; 218 -> {219};
@@ -1,15 +1,15 @@
digraph equalsAndIdentity_kt { digraph equalsAndIdentity_kt {
graph [splines=ortho] graph [splines=ortho, nodesep=3]
subgraph foo { subgraph cluster_foo {
0 [shape=box label="Enter function foo"]; 0 [shape=box label="Enter function foo" style="filled"];
1 [shape=box label="Exit function foo"]; 1 [shape=box label="Exit function foo" style="filled"];
0 -> {1}; 0 -> {1};
} }
subgraph test_1 { subgraph cluster_test_1 {
2 [shape=box label="Enter function test_1"]; 2 [shape=box label="Enter function test_1" style="filled"];
3 [shape=box label="Enter block"]; 3 [shape=box label="Enter block"];
4 [shape=box label="Enter when"]; 4 [shape=box label="Enter when"];
5 [shape=box label="Enter when branch condition "]; 5 [shape=box label="Enter when branch condition "];
@@ -50,7 +50,7 @@ subgraph test_1 {
40 [shape=box label="Exit when branch result"]; 40 [shape=box label="Exit when branch result"];
41 [shape=box label="Exit when"]; 41 [shape=box label="Exit when"];
42 [shape=box label="Exit block"]; 42 [shape=box label="Exit block"];
43 [shape=box label="Exit function test_1"]; 43 [shape=box label="Exit function test_1" style="filled"];
2 -> {3}; 2 -> {3};
3 -> {4}; 3 -> {4};
@@ -95,8 +95,8 @@ subgraph test_1 {
42 -> {43}; 42 -> {43};
} }
subgraph test_2 { subgraph cluster_test_2 {
44 [shape=box label="Enter function test_2"]; 44 [shape=box label="Enter function test_2" style="filled"];
45 [shape=box label="Enter block"]; 45 [shape=box label="Enter block"];
46 [shape=box label="Enter when"]; 46 [shape=box label="Enter when"];
47 [shape=box label="Enter when branch condition "]; 47 [shape=box label="Enter when branch condition "];
@@ -137,7 +137,7 @@ subgraph test_2 {
82 [shape=box label="Exit when branch result"]; 82 [shape=box label="Exit when branch result"];
83 [shape=box label="Exit when"]; 83 [shape=box label="Exit when"];
84 [shape=box label="Exit block"]; 84 [shape=box label="Exit block"];
85 [shape=box label="Exit function test_2"]; 85 [shape=box label="Exit function test_2" style="filled"];
44 -> {45}; 44 -> {45};
45 -> {46}; 45 -> {46};
@@ -182,8 +182,8 @@ subgraph test_2 {
84 -> {85}; 84 -> {85};
} }
subgraph test_3 { subgraph cluster_test_3 {
86 [shape=box label="Enter function test_3"]; 86 [shape=box label="Enter function test_3" style="filled"];
87 [shape=box label="Enter block"]; 87 [shape=box label="Enter block"];
88 [shape=box label="Enter when"]; 88 [shape=box label="Enter when"];
89 [shape=box label="Enter when branch condition "]; 89 [shape=box label="Enter when branch condition "];
@@ -241,7 +241,7 @@ subgraph test_3 {
141 [shape=box label="Exit when branch result"]; 141 [shape=box label="Exit when branch result"];
142 [shape=box label="Exit when"]; 142 [shape=box label="Exit when"];
143 [shape=box label="Exit block"]; 143 [shape=box label="Exit block"];
144 [shape=box label="Exit function test_3"]; 144 [shape=box label="Exit function test_3" style="filled"];
86 -> {87}; 86 -> {87};
87 -> {88}; 87 -> {88};
@@ -1,22 +1,22 @@
digraph equalsToBoolean_kt { digraph equalsToBoolean_kt {
graph [splines=ortho] graph [splines=ortho, nodesep=3]
subgraph foo { subgraph cluster_foo {
0 [shape=box label="Enter function foo"]; 0 [shape=box label="Enter function foo" style="filled"];
1 [shape=box label="Exit function foo"]; 1 [shape=box label="Exit function foo" style="filled"];
0 -> {1}; 0 -> {1};
} }
subgraph val_b { subgraph cluster_val_b {
2 [shape=box label="Enter property"]; 2 [shape=box label="Enter property" style="filled"];
3 [shape=box label="Exit property"]; 3 [shape=box label="Exit property" style="filled"];
2 -> {3}; 2 -> {3};
} }
subgraph test_1 { subgraph cluster_test_1 {
4 [shape=box label="Enter function test_1"]; 4 [shape=box label="Enter function test_1" style="filled"];
5 [shape=box label="Enter block"]; 5 [shape=box label="Enter block"];
6 [shape=box label="Enter when"]; 6 [shape=box label="Enter when"];
7 [shape=box label="Enter when branch condition "]; 7 [shape=box label="Enter when branch condition "];
@@ -40,7 +40,7 @@ subgraph test_1 {
25 [shape=box label="Exit when branch result"]; 25 [shape=box label="Exit when branch result"];
26 [shape=box label="Exit when"]; 26 [shape=box label="Exit when"];
27 [shape=box label="Exit block"]; 27 [shape=box label="Exit block"];
28 [shape=box label="Exit function test_1"]; 28 [shape=box label="Exit function test_1" style="filled"];
4 -> {5}; 4 -> {5};
5 -> {6}; 5 -> {6};
@@ -68,8 +68,8 @@ subgraph test_1 {
27 -> {28}; 27 -> {28};
} }
subgraph test_2 { subgraph cluster_test_2 {
29 [shape=box label="Enter function test_2"]; 29 [shape=box label="Enter function test_2" style="filled"];
30 [shape=box label="Enter block"]; 30 [shape=box label="Enter block"];
31 [shape=box label="Enter when"]; 31 [shape=box label="Enter when"];
32 [shape=box label="Enter when branch condition "]; 32 [shape=box label="Enter when branch condition "];
@@ -93,7 +93,7 @@ subgraph test_2 {
50 [shape=box label="Exit when branch result"]; 50 [shape=box label="Exit when branch result"];
51 [shape=box label="Exit when"]; 51 [shape=box label="Exit when"];
52 [shape=box label="Exit block"]; 52 [shape=box label="Exit block"];
53 [shape=box label="Exit function test_2"]; 53 [shape=box label="Exit function test_2" style="filled"];
29 -> {30}; 29 -> {30};
30 -> {31}; 30 -> {31};
@@ -121,8 +121,8 @@ subgraph test_2 {
52 -> {53}; 52 -> {53};
} }
subgraph test_3 { subgraph cluster_test_3 {
54 [shape=box label="Enter function test_3"]; 54 [shape=box label="Enter function test_3" style="filled"];
55 [shape=box label="Enter block"]; 55 [shape=box label="Enter block"];
56 [shape=box label="Enter when"]; 56 [shape=box label="Enter when"];
57 [shape=box label="Enter when branch condition "]; 57 [shape=box label="Enter when branch condition "];
@@ -146,7 +146,7 @@ subgraph test_3 {
75 [shape=box label="Exit when branch result"]; 75 [shape=box label="Exit when branch result"];
76 [shape=box label="Exit when"]; 76 [shape=box label="Exit when"];
77 [shape=box label="Exit block"]; 77 [shape=box label="Exit block"];
78 [shape=box label="Exit function test_3"]; 78 [shape=box label="Exit function test_3" style="filled"];
54 -> {55}; 54 -> {55};
55 -> {56}; 55 -> {56};
@@ -174,8 +174,8 @@ subgraph test_3 {
77 -> {78}; 77 -> {78};
} }
subgraph test_4 { subgraph cluster_test_4 {
79 [shape=box label="Enter function test_4"]; 79 [shape=box label="Enter function test_4" style="filled"];
80 [shape=box label="Enter block"]; 80 [shape=box label="Enter block"];
81 [shape=box label="Enter when"]; 81 [shape=box label="Enter when"];
82 [shape=box label="Enter when branch condition "]; 82 [shape=box label="Enter when branch condition "];
@@ -199,7 +199,7 @@ subgraph test_4 {
100 [shape=box label="Exit when branch result"]; 100 [shape=box label="Exit when branch result"];
101 [shape=box label="Exit when"]; 101 [shape=box label="Exit when"];
102 [shape=box label="Exit block"]; 102 [shape=box label="Exit block"];
103 [shape=box label="Exit function test_4"]; 103 [shape=box label="Exit function test_4" style="filled"];
79 -> {80}; 79 -> {80};
80 -> {81}; 80 -> {81};
@@ -227,8 +227,8 @@ subgraph test_4 {
102 -> {103}; 102 -> {103};
} }
subgraph test_5 { subgraph cluster_test_5 {
104 [shape=box label="Enter function test_5"]; 104 [shape=box label="Enter function test_5" style="filled"];
105 [shape=box label="Enter block"]; 105 [shape=box label="Enter block"];
106 [shape=box label="Enter when"]; 106 [shape=box label="Enter when"];
107 [shape=box label="Enter when branch condition "]; 107 [shape=box label="Enter when branch condition "];
@@ -252,7 +252,7 @@ subgraph test_5 {
125 [shape=box label="Exit when branch result"]; 125 [shape=box label="Exit when branch result"];
126 [shape=box label="Exit when"]; 126 [shape=box label="Exit when"];
127 [shape=box label="Exit block"]; 127 [shape=box label="Exit block"];
128 [shape=box label="Exit function test_5"]; 128 [shape=box label="Exit function test_5" style="filled"];
104 -> {105}; 104 -> {105};
105 -> {106}; 105 -> {106};
@@ -280,8 +280,8 @@ subgraph test_5 {
127 -> {128}; 127 -> {128};
} }
subgraph test_6 { subgraph cluster_test_6 {
129 [shape=box label="Enter function test_6"]; 129 [shape=box label="Enter function test_6" style="filled"];
130 [shape=box label="Enter block"]; 130 [shape=box label="Enter block"];
131 [shape=box label="Enter when"]; 131 [shape=box label="Enter when"];
132 [shape=box label="Enter when branch condition "]; 132 [shape=box label="Enter when branch condition "];
@@ -305,7 +305,7 @@ subgraph test_6 {
150 [shape=box label="Exit when branch result"]; 150 [shape=box label="Exit when branch result"];
151 [shape=box label="Exit when"]; 151 [shape=box label="Exit when"];
152 [shape=box label="Exit block"]; 152 [shape=box label="Exit block"];
153 [shape=box label="Exit function test_6"]; 153 [shape=box label="Exit function test_6" style="filled"];
129 -> {130}; 129 -> {130};
130 -> {131}; 130 -> {131};
@@ -333,8 +333,8 @@ subgraph test_6 {
152 -> {153}; 152 -> {153};
} }
subgraph test_7 { subgraph cluster_test_7 {
154 [shape=box label="Enter function test_7"]; 154 [shape=box label="Enter function test_7" style="filled"];
155 [shape=box label="Enter block"]; 155 [shape=box label="Enter block"];
156 [shape=box label="Enter when"]; 156 [shape=box label="Enter when"];
157 [shape=box label="Enter when branch condition "]; 157 [shape=box label="Enter when branch condition "];
@@ -358,7 +358,7 @@ subgraph test_7 {
175 [shape=box label="Exit when branch result"]; 175 [shape=box label="Exit when branch result"];
176 [shape=box label="Exit when"]; 176 [shape=box label="Exit when"];
177 [shape=box label="Exit block"]; 177 [shape=box label="Exit block"];
178 [shape=box label="Exit function test_7"]; 178 [shape=box label="Exit function test_7" style="filled"];
154 -> {155}; 154 -> {155};
155 -> {156}; 155 -> {156};
@@ -386,8 +386,8 @@ subgraph test_7 {
177 -> {178}; 177 -> {178};
} }
subgraph test_8 { subgraph cluster_test_8 {
179 [shape=box label="Enter function test_8"]; 179 [shape=box label="Enter function test_8" style="filled"];
180 [shape=box label="Enter block"]; 180 [shape=box label="Enter block"];
181 [shape=box label="Enter when"]; 181 [shape=box label="Enter when"];
182 [shape=box label="Enter when branch condition "]; 182 [shape=box label="Enter when branch condition "];
@@ -411,7 +411,7 @@ subgraph test_8 {
200 [shape=box label="Exit when branch result"]; 200 [shape=box label="Exit when branch result"];
201 [shape=box label="Exit when"]; 201 [shape=box label="Exit when"];
202 [shape=box label="Exit block"]; 202 [shape=box label="Exit block"];
203 [shape=box label="Exit function test_8"]; 203 [shape=box label="Exit function test_8" style="filled"];
179 -> {180}; 179 -> {180};
180 -> {181}; 180 -> {181};
@@ -1,26 +1,26 @@
digraph inPlaceLambdas_kt { digraph inPlaceLambdas_kt {
graph [splines=ortho] graph [splines=ortho, nodesep=3]
subgraph foo { subgraph cluster_foo {
0 [shape=box label="Enter function foo"]; 0 [shape=box label="Enter function foo" style="filled"];
1 [shape=box label="Exit function foo"]; 1 [shape=box label="Exit function foo" style="filled"];
0 -> {1}; 0 -> {1};
} }
subgraph bar { subgraph cluster_bar {
2 [shape=box label="Enter function bar"]; 2 [shape=box label="Enter function bar" style="filled"];
3 [shape=box label="Exit function bar"]; 3 [shape=box label="Exit function bar" style="filled"];
2 -> {3}; 2 -> {3};
} }
subgraph run { subgraph cluster_run {
4 [shape=box label="Enter function run"]; 4 [shape=box label="Enter function run" style="filled"];
5 [shape=box label="Enter block"]; 5 [shape=box label="Enter block"];
6 [shape=box label="Function call: R|<local>/block|.R|FakeOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()"]; 6 [shape=box label="Function call: R|<local>/block|.R|FakeOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()"];
7 [shape=box label="Exit block"]; 7 [shape=box label="Exit block"];
8 [shape=box label="Exit function run"]; 8 [shape=box label="Exit function run" style="filled"];
4 -> {5}; 4 -> {5};
5 -> {6}; 5 -> {6};
@@ -28,8 +28,8 @@ subgraph run {
7 -> {8}; 7 -> {8};
} }
subgraph test_1 { subgraph cluster_test_1 {
9 [shape=box label="Enter function test_1"]; 9 [shape=box label="Enter function test_1" style="filled"];
10 [shape=box label="Enter block"]; 10 [shape=box label="Enter block"];
11 [shape=box label="Enter when"]; 11 [shape=box label="Enter when"];
12 [shape=box label="Enter when branch condition "]; 12 [shape=box label="Enter when branch condition "];
@@ -56,7 +56,7 @@ subgraph test_1 {
30 [shape=box label="Exit when branch result"]; 30 [shape=box label="Exit when branch result"];
31 [shape=box label="Exit when"]; 31 [shape=box label="Exit when"];
32 [shape=box label="Exit block"]; 32 [shape=box label="Exit block"];
33 [shape=box label="Exit function test_1"]; 33 [shape=box label="Exit function test_1" style="filled"];
9 -> {10}; 9 -> {10};
10 -> {11}; 10 -> {11};
@@ -84,8 +84,8 @@ subgraph test_1 {
32 -> {33}; 32 -> {33};
} }
subgraph test_2 { subgraph cluster_test_2 {
34 [shape=box label="Enter function test_2"]; 34 [shape=box label="Enter function test_2" style="filled"];
35 [shape=box label="Enter block"]; 35 [shape=box label="Enter block"];
36 [shape=box label="Enter function anonymousFunction"]; 36 [shape=box label="Enter function anonymousFunction"];
37 [shape=box label="Enter block"]; 37 [shape=box label="Enter block"];
@@ -100,7 +100,7 @@ subgraph test_2 {
43 [shape=box label="Access variable R|<local>/x|"]; 43 [shape=box label="Access variable R|<local>/x|"];
44 [shape=box label="Function call: R|<local>/x|.R|/B.bar|()"]; 44 [shape=box label="Function call: R|<local>/x|.R|/B.bar|()"];
45 [shape=box label="Exit block"]; 45 [shape=box label="Exit block"];
46 [shape=box label="Exit function test_2"]; 46 [shape=box label="Exit function test_2" style="filled"];
34 -> {35}; 34 -> {35};
35 -> {36}; 35 -> {36};
@@ -116,8 +116,8 @@ subgraph test_2 {
45 -> {46}; 45 -> {46};
} }
subgraph test_3 { subgraph cluster_test_3 {
47 [shape=box label="Enter function test_3"]; 47 [shape=box label="Enter function test_3" style="filled"];
48 [shape=box label="Enter block"]; 48 [shape=box label="Enter block"];
49 [shape=box label="Enter when"]; 49 [shape=box label="Enter when"];
50 [shape=box label="Enter when branch condition "]; 50 [shape=box label="Enter when branch condition "];
@@ -149,7 +149,7 @@ subgraph test_3 {
72 [shape=box label="Exit when branch result"]; 72 [shape=box label="Exit when branch result"];
73 [shape=box label="Exit when"]; 73 [shape=box label="Exit when"];
74 [shape=box label="Exit block"]; 74 [shape=box label="Exit block"];
75 [shape=box label="Exit function test_3"]; 75 [shape=box label="Exit function test_3" style="filled"];
47 -> {48}; 47 -> {48};
48 -> {49}; 48 -> {49};
@@ -1,50 +1,50 @@
digraph nullability_kt { digraph nullability_kt {
graph [splines=ortho] graph [splines=ortho, nodesep=3]
subgraph foo { subgraph cluster_foo {
0 [shape=box label="Enter function foo"]; 0 [shape=box label="Enter function foo" style="filled"];
1 [shape=box label="Exit function foo"]; 1 [shape=box label="Exit function foo" style="filled"];
0 -> {1}; 0 -> {1};
} }
subgraph getA { subgraph cluster_getA {
2 [shape=box label="Enter function getA"]; 2 [shape=box label="Enter function getA" style="filled"];
3 [shape=box label="Exit function getA"]; 3 [shape=box label="Exit function getA" style="filled"];
2 -> {3}; 2 -> {3};
} }
subgraph val_s { subgraph cluster_val_s {
4 [shape=box label="Enter property"]; 4 [shape=box label="Enter property" style="filled"];
5 [shape=box label="Exit property"]; 5 [shape=box label="Exit property" style="filled"];
4 -> {5}; 4 -> {5};
} }
subgraph fs { subgraph cluster_fs {
6 [shape=box label="Enter function fs"]; 6 [shape=box label="Enter function fs" style="filled"];
7 [shape=box label="Exit function fs"]; 7 [shape=box label="Exit function fs" style="filled"];
6 -> {7}; 6 -> {7};
} }
subgraph val_data { subgraph cluster_val_data {
8 [shape=box label="Enter property"]; 8 [shape=box label="Enter property" style="filled"];
9 [shape=box label="Exit property"]; 9 [shape=box label="Exit property" style="filled"];
8 -> {9}; 8 -> {9};
} }
subgraph fdata { subgraph cluster_fdata {
10 [shape=box label="Enter function fdata"]; 10 [shape=box label="Enter function fdata" style="filled"];
11 [shape=box label="Exit function fdata"]; 11 [shape=box label="Exit function fdata" style="filled"];
10 -> {11}; 10 -> {11};
} }
subgraph test_1 { subgraph cluster_test_1 {
12 [shape=box label="Enter function test_1"]; 12 [shape=box label="Enter function test_1" style="filled"];
13 [shape=box label="Enter block"]; 13 [shape=box label="Enter block"];
14 [shape=box label="Enter when"]; 14 [shape=box label="Enter when"];
15 [shape=box label="Enter when branch condition "]; 15 [shape=box label="Enter when branch condition "];
@@ -68,7 +68,7 @@ subgraph test_1 {
33 [shape=box label="Access variable R|<local>/x|"]; 33 [shape=box label="Access variable R|<local>/x|"];
34 [shape=box label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"]; 34 [shape=box label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
35 [shape=box label="Exit block"]; 35 [shape=box label="Exit block"];
36 [shape=box label="Exit function test_1"]; 36 [shape=box label="Exit function test_1" style="filled"];
12 -> {13}; 12 -> {13};
13 -> {14}; 13 -> {14};
@@ -96,8 +96,8 @@ subgraph test_1 {
35 -> {36}; 35 -> {36};
} }
subgraph test_2 { subgraph cluster_test_2 {
37 [shape=box label="Enter function test_2"]; 37 [shape=box label="Enter function test_2" style="filled"];
38 [shape=box label="Enter block"]; 38 [shape=box label="Enter block"];
39 [shape=box label="Enter when"]; 39 [shape=box label="Enter when"];
40 [shape=box label="Enter when branch condition "]; 40 [shape=box label="Enter when branch condition "];
@@ -121,7 +121,7 @@ subgraph test_2 {
58 [shape=box label="Access variable R|<local>/x|"]; 58 [shape=box label="Access variable R|<local>/x|"];
59 [shape=box label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"]; 59 [shape=box label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
60 [shape=box label="Exit block"]; 60 [shape=box label="Exit block"];
61 [shape=box label="Exit function test_2"]; 61 [shape=box label="Exit function test_2" style="filled"];
37 -> {38}; 37 -> {38};
38 -> {39}; 38 -> {39};
@@ -149,8 +149,8 @@ subgraph test_2 {
60 -> {61}; 60 -> {61};
} }
subgraph test_3 { subgraph cluster_test_3 {
62 [shape=box label="Enter function test_3"]; 62 [shape=box label="Enter function test_3" style="filled"];
63 [shape=box label="Enter block"]; 63 [shape=box label="Enter block"];
64 [shape=box label="Enter when"]; 64 [shape=box label="Enter when"];
65 [shape=box label="Access variable R|<local>/x|"]; 65 [shape=box label="Access variable R|<local>/x|"];
@@ -174,7 +174,7 @@ subgraph test_3 {
83 [shape=box label="Access variable R|<local>/x|"]; 83 [shape=box label="Access variable R|<local>/x|"];
84 [shape=box label="Function call: R|<local>/x|.R|/A.foo|()"]; 84 [shape=box label="Function call: R|<local>/x|.R|/A.foo|()"];
85 [shape=box label="Exit block"]; 85 [shape=box label="Exit block"];
86 [shape=box label="Exit function test_3"]; 86 [shape=box label="Exit function test_3" style="filled"];
62 -> {63}; 62 -> {63};
63 -> {64}; 63 -> {64};
@@ -203,8 +203,8 @@ subgraph test_3 {
85 -> {86}; 85 -> {86};
} }
subgraph test_4 { subgraph cluster_test_4 {
87 [shape=box label="Enter function test_4"]; 87 [shape=box label="Enter function test_4" style="filled"];
88 [shape=box label="Enter block"]; 88 [shape=box label="Enter block"];
89 [shape=box label="Enter when"]; 89 [shape=box label="Enter when"];
90 [shape=box label="Enter when branch condition "]; 90 [shape=box label="Enter when branch condition "];
@@ -227,7 +227,7 @@ subgraph test_4 {
107 [shape=box label="Access variable R|<local>/x|"]; 107 [shape=box label="Access variable R|<local>/x|"];
108 [shape=box label="Function call: R|<local>/x|.R|/A.foo|()"]; 108 [shape=box label="Function call: R|<local>/x|.R|/A.foo|()"];
109 [shape=box label="Exit block"]; 109 [shape=box label="Exit block"];
110 [shape=box label="Exit function test_4"]; 110 [shape=box label="Exit function test_4" style="filled"];
87 -> {88}; 87 -> {88};
88 -> {89}; 88 -> {89};
@@ -255,8 +255,8 @@ subgraph test_4 {
109 -> {110}; 109 -> {110};
} }
subgraph test_5 { subgraph cluster_test_5 {
111 [shape=box label="Enter function test_5"]; 111 [shape=box label="Enter function test_5" style="filled"];
112 [shape=box label="Enter block"]; 112 [shape=box label="Enter block"];
113 [shape=box label="Enter when"]; 113 [shape=box label="Enter when"];
114 [shape=box label="Enter when branch condition "]; 114 [shape=box label="Enter when branch condition "];
@@ -286,7 +286,7 @@ subgraph test_5 {
138 [shape=box label="Exit when branch result"]; 138 [shape=box label="Exit when branch result"];
139 [shape=box label="Exit when"]; 139 [shape=box label="Exit when"];
140 [shape=box label="Exit block"]; 140 [shape=box label="Exit block"];
141 [shape=box label="Exit function test_5"]; 141 [shape=box label="Exit function test_5" style="filled"];
111 -> {112}; 111 -> {112};
112 -> {113}; 112 -> {113};
@@ -320,8 +320,8 @@ subgraph test_5 {
140 -> {141}; 140 -> {141};
} }
subgraph test_6 { subgraph cluster_test_6 {
142 [shape=box label="Enter function test_6"]; 142 [shape=box label="Enter function test_6" style="filled"];
143 [shape=box label="Enter block"]; 143 [shape=box label="Enter block"];
144 [shape=box label="Enter when"]; 144 [shape=box label="Enter when"];
145 [shape=box label="Access variable R|<local>/q|"]; 145 [shape=box label="Access variable R|<local>/q|"];
@@ -355,7 +355,7 @@ subgraph test_6 {
173 [shape=box label="Access variable R|/MyData.s|"]; 173 [shape=box label="Access variable R|/MyData.s|"];
174 [shape=box label="Function call: R|<local>/q|.R|/Q.data|.R|/MyData.s|.R|kotlin/Int.inc|()"]; 174 [shape=box label="Function call: R|<local>/q|.R|/Q.data|.R|/MyData.s|.R|kotlin/Int.inc|()"];
175 [shape=box label="Exit block"]; 175 [shape=box label="Exit block"];
176 [shape=box label="Exit function test_6"]; 176 [shape=box label="Exit function test_6" style="filled"];
142 -> {143}; 142 -> {143};
143 -> {144}; 143 -> {144};
@@ -394,8 +394,8 @@ subgraph test_6 {
175 -> {176}; 175 -> {176};
} }
subgraph test_7 { subgraph cluster_test_7 {
177 [shape=box label="Enter function test_7"]; 177 [shape=box label="Enter function test_7" style="filled"];
178 [shape=box label="Enter block"]; 178 [shape=box label="Enter block"];
179 [shape=box label="Enter when"]; 179 [shape=box label="Enter when"];
180 [shape=box label="Enter when branch condition "]; 180 [shape=box label="Enter when branch condition "];
@@ -425,7 +425,7 @@ subgraph test_7 {
204 [shape=box label="Exit when branch result"]; 204 [shape=box label="Exit when branch result"];
205 [shape=box label="Exit when"]; 205 [shape=box label="Exit when"];
206 [shape=box label="Exit block"]; 206 [shape=box label="Exit block"];
207 [shape=box label="Exit function test_7"]; 207 [shape=box label="Exit function test_7" style="filled"];
177 -> {178}; 177 -> {178};
178 -> {179}; 178 -> {179};
@@ -459,8 +459,8 @@ subgraph test_7 {
206 -> {207}; 206 -> {207};
} }
subgraph test_8 { subgraph cluster_test_8 {
208 [shape=box label="Enter function test_8"]; 208 [shape=box label="Enter function test_8" style="filled"];
209 [shape=box label="Enter block"]; 209 [shape=box label="Enter block"];
210 [shape=box label="Enter when"]; 210 [shape=box label="Enter when"];
211 [shape=box label="Enter when branch condition "]; 211 [shape=box label="Enter when branch condition "];
@@ -480,7 +480,7 @@ subgraph test_8 {
225 [shape=box label="Exit when branch result"]; 225 [shape=box label="Exit when branch result"];
226 [shape=box label="Exit when"]; 226 [shape=box label="Exit when"];
227 [shape=box label="Exit block"]; 227 [shape=box label="Exit block"];
228 [shape=box label="Exit function test_8"]; 228 [shape=box label="Exit function test_8" style="filled"];
208 -> {209}; 208 -> {209};
209 -> {210}; 209 -> {210};
@@ -504,8 +504,8 @@ subgraph test_8 {
227 -> {228}; 227 -> {228};
} }
subgraph test_9 { subgraph cluster_test_9 {
229 [shape=box label="Enter function test_9"]; 229 [shape=box label="Enter function test_9" style="filled"];
230 [shape=box label="Enter block"]; 230 [shape=box label="Enter block"];
231 [shape=box label="Enter when"]; 231 [shape=box label="Enter when"];
232 [shape=box label="Enter when branch condition "]; 232 [shape=box label="Enter when branch condition "];
@@ -584,7 +584,7 @@ subgraph test_9 {
305 [shape=box label="Access variable R|<local>/b|"]; 305 [shape=box label="Access variable R|<local>/b|"];
306 [shape=box label="Function call: R|<local>/b|.<Ambiguity: inc, [kotlin/inc, kotlin/inc]>#()"]; 306 [shape=box label="Function call: R|<local>/b|.<Ambiguity: inc, [kotlin/inc, kotlin/inc]>#()"];
307 [shape=box label="Exit block"]; 307 [shape=box label="Exit block"];
308 [shape=box label="Exit function test_9"]; 308 [shape=box label="Exit function test_9" style="filled"];
229 -> {230}; 229 -> {230};
230 -> {231}; 230 -> {231};
@@ -667,8 +667,8 @@ subgraph test_9 {
307 -> {308}; 307 -> {308};
} }
subgraph test_10 { subgraph cluster_test_10 {
309 [shape=box label="Enter function test_10"]; 309 [shape=box label="Enter function test_10" style="filled"];
310 [shape=box label="Enter block"]; 310 [shape=box label="Enter block"];
311 [shape=box label="Enter when"]; 311 [shape=box label="Enter when"];
312 [shape=box label="Enter when branch condition "]; 312 [shape=box label="Enter when branch condition "];
@@ -747,7 +747,7 @@ subgraph test_10 {
385 [shape=box label="Access variable R|<local>/b|"]; 385 [shape=box label="Access variable R|<local>/b|"];
386 [shape=box label="Function call: R|<local>/b|.<Ambiguity: inc, [kotlin/inc, kotlin/inc]>#()"]; 386 [shape=box label="Function call: R|<local>/b|.<Ambiguity: inc, [kotlin/inc, kotlin/inc]>#()"];
387 [shape=box label="Exit block"]; 387 [shape=box label="Exit block"];
388 [shape=box label="Exit function test_10"]; 388 [shape=box label="Exit function test_10" style="filled"];
309 -> {310}; 309 -> {310};
310 -> {311}; 310 -> {311};
+22 -22
View File
@@ -1,8 +1,8 @@
digraph returns_kt { digraph returns_kt {
graph [splines=ortho] graph [splines=ortho, nodesep=3]
subgraph test_0 { subgraph cluster_test_0 {
0 [shape=box label="Enter function test_0"]; 0 [shape=box label="Enter function test_0" style="filled"];
1 [shape=box label="Enter block"]; 1 [shape=box label="Enter block"];
2 [shape=box label="Enter when"]; 2 [shape=box label="Enter when"];
3 [shape=box label="Enter when branch condition "]; 3 [shape=box label="Enter when branch condition "];
@@ -23,7 +23,7 @@ subgraph test_0 {
18 [shape=box label="Access variable R|<local>/x|"]; 18 [shape=box label="Access variable R|<local>/x|"];
19 [shape=box label="Access variable <Unresolved name: length>#"]; 19 [shape=box label="Access variable <Unresolved name: length>#"];
20 [shape=box label="Exit block"]; 20 [shape=box label="Exit block"];
21 [shape=box label="Exit function test_0"]; 21 [shape=box label="Exit function test_0" style="filled"];
0 -> {1}; 0 -> {1};
1 -> {2}; 1 -> {2};
@@ -48,8 +48,8 @@ subgraph test_0 {
20 -> {21}; 20 -> {21};
} }
subgraph test_1 { subgraph cluster_test_1 {
22 [shape=box label="Enter function test_1"]; 22 [shape=box label="Enter function test_1" style="filled"];
23 [shape=box label="Enter block"]; 23 [shape=box label="Enter block"];
24 [shape=box label="Enter when"]; 24 [shape=box label="Enter when"];
25 [shape=box label="Enter when branch condition "]; 25 [shape=box label="Enter when branch condition "];
@@ -72,7 +72,7 @@ subgraph test_1 {
42 [shape=box label="Access variable R|<local>/x|"]; 42 [shape=box label="Access variable R|<local>/x|"];
43 [shape=box label="Access variable R|kotlin/String.length|"]; 43 [shape=box label="Access variable R|kotlin/String.length|"];
44 [shape=box label="Exit block"]; 44 [shape=box label="Exit block"];
45 [shape=box label="Exit function test_1"]; 45 [shape=box label="Exit function test_1" style="filled"];
22 -> {23}; 22 -> {23};
23 -> {24}; 23 -> {24};
@@ -100,29 +100,29 @@ subgraph test_1 {
44 -> {45}; 44 -> {45};
} }
subgraph foo { subgraph cluster_foo {
46 [shape=box label="Enter function foo"]; 46 [shape=box label="Enter function foo" style="filled"];
47 [shape=box label="Exit function foo"]; 47 [shape=box label="Exit function foo" style="filled"];
46 -> {47}; 46 -> {47};
} }
subgraph bar { subgraph cluster_bar {
48 [shape=box label="Enter function bar"]; 48 [shape=box label="Enter function bar" style="filled"];
49 [shape=box label="Exit function bar"]; 49 [shape=box label="Exit function bar" style="filled"];
48 -> {49}; 48 -> {49};
} }
subgraph baz { subgraph cluster_baz {
50 [shape=box label="Enter function baz"]; 50 [shape=box label="Enter function baz" style="filled"];
51 [shape=box label="Exit function baz"]; 51 [shape=box label="Exit function baz" style="filled"];
50 -> {51}; 50 -> {51};
} }
subgraph test_2 { subgraph cluster_test_2 {
52 [shape=box label="Enter function test_2"]; 52 [shape=box label="Enter function test_2" style="filled"];
53 [shape=box label="Enter block"]; 53 [shape=box label="Enter block"];
54 [shape=box label="Enter when"]; 54 [shape=box label="Enter when"];
55 [shape=box label="Enter when branch condition "]; 55 [shape=box label="Enter when branch condition "];
@@ -158,7 +158,7 @@ subgraph test_2 {
85 [shape=box label="Access variable R|<local>/x|"]; 85 [shape=box label="Access variable R|<local>/x|"];
86 [shape=box label="Function call: R|<local>/x|.<Unresolved name: baz>#()"]; 86 [shape=box label="Function call: R|<local>/x|.<Unresolved name: baz>#()"];
87 [shape=box label="Exit block"]; 87 [shape=box label="Exit block"];
88 [shape=box label="Exit function test_2"]; 88 [shape=box label="Exit function test_2" style="filled"];
52 -> {53}; 52 -> {53};
53 -> {54}; 53 -> {54};
@@ -199,8 +199,8 @@ subgraph test_2 {
87 -> {88}; 87 -> {88};
} }
subgraph test_3 { subgraph cluster_test_3 {
89 [shape=box label="Enter function test_3"]; 89 [shape=box label="Enter function test_3" style="filled"];
90 [shape=box label="Enter block"]; 90 [shape=box label="Enter block"];
91 [shape=box label="Enter when"]; 91 [shape=box label="Enter when"];
92 [shape=box label="Enter when branch condition "]; 92 [shape=box label="Enter when branch condition "];
@@ -234,7 +234,7 @@ subgraph test_3 {
120 [shape=box label="Access variable R|<local>/x|"]; 120 [shape=box label="Access variable R|<local>/x|"];
121 [shape=box label="Function call: R|<local>/x|.<Unresolved name: baz>#()"]; 121 [shape=box label="Function call: R|<local>/x|.<Unresolved name: baz>#()"];
122 [shape=box label="Exit block"]; 122 [shape=box label="Exit block"];
123 [shape=box label="Exit function test_3"]; 123 [shape=box label="Exit function test_3" style="filled"];
89 -> {90}; 89 -> {90};
90 -> {91}; 90 -> {91};
+10 -10
View File
@@ -1,8 +1,8 @@
digraph simpleIf_kt { digraph simpleIf_kt {
graph [splines=ortho] graph [splines=ortho, nodesep=3]
subgraph test_1 { subgraph cluster_test_1 {
0 [shape=box label="Enter function test_1"]; 0 [shape=box label="Enter function test_1" style="filled"];
1 [shape=box label="Enter block"]; 1 [shape=box label="Enter block"];
2 [shape=box label="Enter when"]; 2 [shape=box label="Enter when"];
3 [shape=box label="Enter when branch condition "]; 3 [shape=box label="Enter when branch condition "];
@@ -23,7 +23,7 @@ subgraph test_1 {
18 [shape=box label="Access variable R|<local>/x|"]; 18 [shape=box label="Access variable R|<local>/x|"];
19 [shape=box label="Access variable <Unresolved name: length>#"]; 19 [shape=box label="Access variable <Unresolved name: length>#"];
20 [shape=box label="Exit block"]; 20 [shape=box label="Exit block"];
21 [shape=box label="Exit function test_1"]; 21 [shape=box label="Exit function test_1" style="filled"];
0 -> {1}; 0 -> {1};
1 -> {2}; 1 -> {2};
@@ -48,8 +48,8 @@ subgraph test_1 {
20 -> {21}; 20 -> {21};
} }
subgraph test_2 { subgraph cluster_test_2 {
22 [shape=box label="Enter function test_2"]; 22 [shape=box label="Enter function test_2" style="filled"];
23 [shape=box label="Enter block"]; 23 [shape=box label="Enter block"];
24 [shape=box label="Access variable R|<local>/x|"]; 24 [shape=box label="Access variable R|<local>/x|"];
25 [shape=box label="Type operator: x is String"]; 25 [shape=box label="Type operator: x is String"];
@@ -72,7 +72,7 @@ subgraph test_2 {
42 [shape=box label="Access variable R|<local>/x|"]; 42 [shape=box label="Access variable R|<local>/x|"];
43 [shape=box label="Access variable <Unresolved name: length>#"]; 43 [shape=box label="Access variable <Unresolved name: length>#"];
44 [shape=box label="Exit block"]; 44 [shape=box label="Exit block"];
45 [shape=box label="Exit function test_2"]; 45 [shape=box label="Exit function test_2" style="filled"];
22 -> {23}; 22 -> {23};
23 -> {24}; 23 -> {24};
@@ -99,8 +99,8 @@ subgraph test_2 {
44 -> {45}; 44 -> {45};
} }
subgraph test_3 { subgraph cluster_test_3 {
46 [shape=box label="Enter function test_3"]; 46 [shape=box label="Enter function test_3" style="filled"];
47 [shape=box label="Enter block"]; 47 [shape=box label="Enter block"];
48 [shape=box label="Enter when"]; 48 [shape=box label="Enter when"];
49 [shape=box label="Enter when branch condition "]; 49 [shape=box label="Enter when branch condition "];
@@ -128,7 +128,7 @@ subgraph test_3 {
71 [shape=box label="Exit when branch result"]; 71 [shape=box label="Exit when branch result"];
72 [shape=box label="Exit when"]; 72 [shape=box label="Exit when"];
73 [shape=box label="Exit block"]; 73 [shape=box label="Exit block"];
74 [shape=box label="Exit function test_3"]; 74 [shape=box label="Exit function test_3" style="filled"];
46 -> {47}; 46 -> {47};
47 -> {48}; 47 -> {48};
+19 -19
View File
@@ -1,22 +1,22 @@
digraph when_kt { digraph when_kt {
graph [splines=ortho] graph [splines=ortho, nodesep=3]
subgraph foo { subgraph cluster_foo {
0 [shape=box label="Enter function foo"]; 0 [shape=box label="Enter function foo" style="filled"];
1 [shape=box label="Exit function foo"]; 1 [shape=box label="Exit function foo" style="filled"];
0 -> {1}; 0 -> {1};
} }
subgraph bar { subgraph cluster_bar {
2 [shape=box label="Enter function bar"]; 2 [shape=box label="Enter function bar" style="filled"];
3 [shape=box label="Exit function bar"]; 3 [shape=box label="Exit function bar" style="filled"];
2 -> {3}; 2 -> {3};
} }
subgraph test_1 { subgraph cluster_test_1 {
4 [shape=box label="Enter function test_1"]; 4 [shape=box label="Enter function test_1" style="filled"];
5 [shape=box label="Enter block"]; 5 [shape=box label="Enter block"];
6 [shape=box label="Enter when"]; 6 [shape=box label="Enter when"];
7 [shape=box label="Enter when branch condition "]; 7 [shape=box label="Enter when branch condition "];
@@ -84,7 +84,7 @@ subgraph test_1 {
69 [shape=box label="Exit when branch result"]; 69 [shape=box label="Exit when branch result"];
70 [shape=box label="Exit when"]; 70 [shape=box label="Exit when"];
71 [shape=box label="Exit block"]; 71 [shape=box label="Exit block"];
72 [shape=box label="Exit function test_1"]; 72 [shape=box label="Exit function test_1" style="filled"];
4 -> {5}; 4 -> {5};
5 -> {6}; 5 -> {6};
@@ -156,8 +156,8 @@ subgraph test_1 {
71 -> {72}; 71 -> {72};
} }
subgraph test_2 { subgraph cluster_test_2 {
73 [shape=box label="Enter function test_2"]; 73 [shape=box label="Enter function test_2" style="filled"];
74 [shape=box label="Enter block"]; 74 [shape=box label="Enter block"];
75 [shape=box label="Enter when"]; 75 [shape=box label="Enter when"];
76 [shape=box label="Access variable R|<local>/x|"]; 76 [shape=box label="Access variable R|<local>/x|"];
@@ -222,7 +222,7 @@ subgraph test_2 {
135 [shape=box label="Exit when branch result"]; 135 [shape=box label="Exit when branch result"];
136 [shape=box label="Exit when"]; 136 [shape=box label="Exit when"];
137 [shape=box label="Exit block"]; 137 [shape=box label="Exit block"];
138 [shape=box label="Exit function test_2"]; 138 [shape=box label="Exit function test_2" style="filled"];
73 -> {74}; 73 -> {74};
74 -> {75}; 74 -> {75};
@@ -291,8 +291,8 @@ subgraph test_2 {
137 -> {138}; 137 -> {138};
} }
subgraph test_3 { subgraph cluster_test_3 {
139 [shape=box label="Enter function test_3"]; 139 [shape=box label="Enter function test_3" style="filled"];
140 [shape=box label="Enter block"]; 140 [shape=box label="Enter block"];
141 [shape=box label="Enter when"]; 141 [shape=box label="Enter when"];
142 [shape=box label="Access variable R|<local>/x|"]; 142 [shape=box label="Access variable R|<local>/x|"];
@@ -375,7 +375,7 @@ subgraph test_3 {
219 [shape=box label="Exit when branch result"]; 219 [shape=box label="Exit when branch result"];
220 [shape=box label="Exit when"]; 220 [shape=box label="Exit when"];
221 [shape=box label="Exit block"]; 221 [shape=box label="Exit block"];
222 [shape=box label="Exit function test_3"]; 222 [shape=box label="Exit function test_3" style="filled"];
139 -> {140}; 139 -> {140};
140 -> {141}; 140 -> {141};
@@ -462,8 +462,8 @@ subgraph test_3 {
221 -> {222}; 221 -> {222};
} }
subgraph test_4 { subgraph cluster_test_4 {
223 [shape=box label="Enter function test_4"]; 223 [shape=box label="Enter function test_4" style="filled"];
224 [shape=box label="Enter block"]; 224 [shape=box label="Enter block"];
225 [shape=box label="Enter when"]; 225 [shape=box label="Enter when"];
226 [shape=box label="Access variable R|<local>/x|"]; 226 [shape=box label="Access variable R|<local>/x|"];
@@ -486,7 +486,7 @@ subgraph test_4 {
243 [shape=box label="Access variable R|<local>/x|"]; 243 [shape=box label="Access variable R|<local>/x|"];
244 [shape=box label="Function call: R|<local>/x|.R|kotlin/Int.inc|()"]; 244 [shape=box label="Function call: R|<local>/x|.R|kotlin/Int.inc|()"];
245 [shape=box label="Exit block"]; 245 [shape=box label="Exit block"];
246 [shape=box label="Exit function test_4"]; 246 [shape=box label="Exit function test_4" style="filled"];
223 -> {224}; 223 -> {224};
224 -> {225}; 224 -> {225};
@@ -60,7 +60,7 @@ abstract class AbstractFirCfgBuildingTest : AbstractFirResolveTestCase() {
override fun visitFile(file: FirFile) { override fun visitFile(file: FirFile) {
dotBuilder.appendln("digraph ${file.name.replace(".", "_")} {") dotBuilder.appendln("digraph ${file.name.replace(".", "_")} {")
.appendln("graph [splines=ortho]") .appendln("graph [splines=ortho, nodesep=3]")
.appendln() .appendln()
super.visitFile(file) super.visitFile(file)
dotBuilder.appendln("}") dotBuilder.appendln("}")
@@ -86,7 +86,8 @@ fun ControlFlowGraph.dotRenderToStringBuilder(builder: StringBuilder, indexOffse
with(builder) { with(builder) {
val sortedNodes = sortNodes() val sortedNodes = sortNodes()
val indices = sortedNodes.indicesMap().mapValues { (_, index) -> index + indexOffset } val indices = sortedNodes.indicesMap().mapValues { (_, index) -> index + indexOffset }
appendln("subgraph ${name.replace(" ", "_")} {") val graphName = name.replace(Regex("[ <>]"), "_")
appendln("subgraph cluster_$graphName {")
fun CFGNode<*>.splitEdges(): Pair<List<CFGNode<*>>, List<CFGNode<*>>> = fun CFGNode<*>.splitEdges(): Pair<List<CFGNode<*>>, List<CFGNode<*>>> =
if (isDead) emptyList<CFGNode<*>>() to followingNodes if (isDead) emptyList<CFGNode<*>>() to followingNodes
@@ -95,7 +96,12 @@ fun ControlFlowGraph.dotRenderToStringBuilder(builder: StringBuilder, indexOffse
sortedNodes.forEach { sortedNodes.forEach {
append(INDENT) append(INDENT)
append(indices.getValue(it)) append(indices.getValue(it))
appendln(" [shape=box label=\"${it.render().replace("\"", "")}\"];") val attributes = mutableListOf("shape=box")
attributes += "label=\"${it.render().replace("\"", "")}\""
if (it == enterNode || it == exitNode) {
attributes += "style=\"filled\""
}
appendln(attributes.joinToString(separator = " ", prefix = " [", postfix = "];"))
} }
appendln() appendln()