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