[FIR] Create CFG for files to track top-level property initialization
In order to properly analyze top-level property initialization, a control-flow graph must be created for FirFiles. This change adds the foundation for the file CFG and updates body resolve to create the CFG. Checking the CFG for proper initialization is separated into a following change to ease code review. KT-56683
This commit is contained in:
@@ -5,104 +5,111 @@ digraph annotatedLocalClass_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter class Ann" style="filled" fillcolor=red];
|
||||
subgraph cluster_1 {
|
||||
color=blue
|
||||
1 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
2 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
3 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
}
|
||||
4 [label="Exit class Ann" style="filled" fillcolor=red];
|
||||
0 [label="Enter file annotatedLocalClass.kt" style="filled" fillcolor=red];
|
||||
1 [label="Exit file annotatedLocalClass.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1} [color=green];
|
||||
0 -> {4} [style=dotted];
|
||||
0 -> {1} [style=dashed];
|
||||
1 -> {2};
|
||||
2 -> {3};
|
||||
3 -> {4} [color=green];
|
||||
|
||||
subgraph cluster_2 {
|
||||
subgraph cluster_1 {
|
||||
color=red
|
||||
5 [label="Enter function foo" style="filled" fillcolor=red];
|
||||
subgraph cluster_3 {
|
||||
2 [label="Enter class Ann" style="filled" fillcolor=red];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
6 [label="Enter block"];
|
||||
subgraph cluster_4 {
|
||||
3 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
4 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
5 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
}
|
||||
6 [label="Exit class Ann" style="filled" fillcolor=red];
|
||||
}
|
||||
2 -> {3} [color=green];
|
||||
2 -> {6} [style=dotted];
|
||||
2 -> {3} [style=dashed];
|
||||
3 -> {4};
|
||||
4 -> {5};
|
||||
5 -> {6} [color=green];
|
||||
|
||||
subgraph cluster_3 {
|
||||
color=red
|
||||
7 [label="Enter function foo" style="filled" fillcolor=red];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
8 [label="Enter block"];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
7 [label="Enter when"];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
8 [label="Enter when branch condition "];
|
||||
9 [label="Access variable R|<local>/b|"];
|
||||
10 [label="Exit when branch condition"];
|
||||
}
|
||||
11 [label="Synthetic else branch"];
|
||||
12 [label="Enter when branch result"];
|
||||
9 [label="Enter when"];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
13 [label="Enter block"];
|
||||
14 [label="Jump: ^foo Unit"];
|
||||
15 [label="Stub" style="filled" fillcolor=gray];
|
||||
16 [label="Exit block" style="filled" fillcolor=gray];
|
||||
10 [label="Enter when branch condition "];
|
||||
11 [label="Access variable R|<local>/b|"];
|
||||
12 [label="Exit when branch condition"];
|
||||
}
|
||||
17 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
18 [label="Exit when"];
|
||||
13 [label="Synthetic else branch"];
|
||||
14 [label="Enter when branch result"];
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
15 [label="Enter block"];
|
||||
16 [label="Jump: ^foo Unit"];
|
||||
17 [label="Stub" style="filled" fillcolor=gray];
|
||||
18 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
19 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
20 [label="Exit when"];
|
||||
}
|
||||
19 [label="Local class declaration"];
|
||||
20 [label="Function call: R|/bar|()" style="filled" fillcolor=yellow];
|
||||
21 [label="Exit block"];
|
||||
21 [label="Local class declaration"];
|
||||
22 [label="Function call: R|/bar|()" style="filled" fillcolor=yellow];
|
||||
23 [label="Exit block"];
|
||||
}
|
||||
22 [label="Exit function foo" style="filled" fillcolor=red];
|
||||
24 [label="Exit function foo" style="filled" fillcolor=red];
|
||||
}
|
||||
subgraph cluster_7 {
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
23 [label="Enter class Local" style="filled" fillcolor=red];
|
||||
subgraph cluster_8 {
|
||||
25 [label="Enter class Local" style="filled" fillcolor=red];
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
24 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
25 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
26 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
26 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
27 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
28 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
}
|
||||
27 [label="Exit class Local" style="filled" fillcolor=red];
|
||||
29 [label="Exit class Local" style="filled" fillcolor=red];
|
||||
}
|
||||
5 -> {6};
|
||||
6 -> {7};
|
||||
7 -> {8};
|
||||
8 -> {9};
|
||||
9 -> {10};
|
||||
10 -> {11 12};
|
||||
11 -> {18};
|
||||
12 -> {13};
|
||||
13 -> {14};
|
||||
14 -> {22};
|
||||
14 -> {15} [style=dotted];
|
||||
15 -> {16} [style=dotted];
|
||||
10 -> {11};
|
||||
11 -> {12};
|
||||
12 -> {13 14};
|
||||
13 -> {20};
|
||||
14 -> {15};
|
||||
15 -> {16};
|
||||
16 -> {24};
|
||||
16 -> {17} [style=dotted];
|
||||
17 -> {18} [style=dotted];
|
||||
18 -> {19};
|
||||
19 -> {20 23};
|
||||
19 -> {23} [style=dashed];
|
||||
18 -> {19} [style=dotted];
|
||||
19 -> {20} [style=dotted];
|
||||
20 -> {21};
|
||||
21 -> {22};
|
||||
21 -> {22 25};
|
||||
21 -> {25} [style=dashed];
|
||||
22 -> {23};
|
||||
23 -> {24};
|
||||
23 -> {27} [style=dotted];
|
||||
23 -> {24} [style=dashed];
|
||||
24 -> {25};
|
||||
25 -> {26};
|
||||
26 -> {27} [color=green];
|
||||
25 -> {29} [style=dotted];
|
||||
25 -> {26} [style=dashed];
|
||||
26 -> {27};
|
||||
27 -> {28};
|
||||
28 -> {29} [color=green];
|
||||
|
||||
subgraph cluster_9 {
|
||||
subgraph cluster_10 {
|
||||
color=red
|
||||
28 [label="Enter function bar" style="filled" fillcolor=red];
|
||||
subgraph cluster_10 {
|
||||
30 [label="Enter function bar" style="filled" fillcolor=red];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
29 [label="Enter block"];
|
||||
30 [label="Exit block"];
|
||||
31 [label="Enter block"];
|
||||
32 [label="Exit block"];
|
||||
}
|
||||
31 [label="Exit function bar" style="filled" fillcolor=red];
|
||||
33 [label="Exit function bar" style="filled" fillcolor=red];
|
||||
}
|
||||
28 -> {29};
|
||||
29 -> {30};
|
||||
30 -> {31};
|
||||
31 -> {32};
|
||||
32 -> {33};
|
||||
|
||||
}
|
||||
|
||||
+208
-201
@@ -5,260 +5,267 @@ digraph binaryOperations_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||
subgraph cluster_1 {
|
||||
color=blue
|
||||
1 [label="Enter block"];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
2 [label="Enter when"];
|
||||
subgraph cluster_3 {
|
||||
color=blue
|
||||
3 [label="Enter when branch condition "];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
4 [label="Enter ||"];
|
||||
5 [label="Access variable R|<local>/b1|"];
|
||||
6 [label="Exit left part of ||"];
|
||||
7 [label="Enter right part of ||"];
|
||||
8 [label="Access variable R|<local>/b2|"];
|
||||
9 [label="Exit ||"];
|
||||
}
|
||||
10 [label="Exit when branch condition"];
|
||||
}
|
||||
11 [label="Synthetic else branch"];
|
||||
12 [label="Enter when branch result"];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
13 [label="Enter block"];
|
||||
14 [label="Const: Int(1)"];
|
||||
15 [label="Exit block"];
|
||||
}
|
||||
16 [label="Exit when branch result"];
|
||||
17 [label="Exit when"];
|
||||
}
|
||||
18 [label="Exit block"];
|
||||
}
|
||||
19 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||
0 [label="Enter file binaryOperations.kt" style="filled" fillcolor=red];
|
||||
1 [label="Exit file binaryOperations.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1} [color=green];
|
||||
|
||||
subgraph cluster_1 {
|
||||
color=red
|
||||
2 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
3 [label="Enter block"];
|
||||
subgraph cluster_3 {
|
||||
color=blue
|
||||
4 [label="Enter when"];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
5 [label="Enter when branch condition "];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
6 [label="Enter ||"];
|
||||
7 [label="Access variable R|<local>/b1|"];
|
||||
8 [label="Exit left part of ||"];
|
||||
9 [label="Enter right part of ||"];
|
||||
10 [label="Access variable R|<local>/b2|"];
|
||||
11 [label="Exit ||"];
|
||||
}
|
||||
12 [label="Exit when branch condition"];
|
||||
}
|
||||
13 [label="Synthetic else branch"];
|
||||
14 [label="Enter when branch result"];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
15 [label="Enter block"];
|
||||
16 [label="Const: Int(1)"];
|
||||
17 [label="Exit block"];
|
||||
}
|
||||
18 [label="Exit when branch result"];
|
||||
19 [label="Exit when"];
|
||||
}
|
||||
20 [label="Exit block"];
|
||||
}
|
||||
21 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1};
|
||||
1 -> {2};
|
||||
2 -> {3};
|
||||
3 -> {4};
|
||||
4 -> {5};
|
||||
5 -> {6};
|
||||
6 -> {7 9};
|
||||
6 -> {7};
|
||||
7 -> {8};
|
||||
8 -> {9};
|
||||
8 -> {9 11};
|
||||
9 -> {10};
|
||||
10 -> {11 12};
|
||||
11 -> {17};
|
||||
12 -> {13};
|
||||
13 -> {14};
|
||||
10 -> {11};
|
||||
11 -> {12};
|
||||
12 -> {13 14};
|
||||
13 -> {19};
|
||||
14 -> {15};
|
||||
15 -> {16};
|
||||
16 -> {17};
|
||||
17 -> {18};
|
||||
18 -> {19};
|
||||
|
||||
subgraph cluster_6 {
|
||||
color=red
|
||||
20 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
21 [label="Enter block"];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
22 [label="Enter when"];
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
23 [label="Enter when branch condition "];
|
||||
subgraph cluster_10 {
|
||||
color=blue
|
||||
24 [label="Enter &&"];
|
||||
25 [label="Access variable R|<local>/b1|"];
|
||||
26 [label="Exit left part of &&"];
|
||||
27 [label="Enter right part of &&"];
|
||||
28 [label="Access variable R|<local>/b2|"];
|
||||
29 [label="Exit &&"];
|
||||
}
|
||||
30 [label="Exit when branch condition"];
|
||||
}
|
||||
31 [label="Synthetic else branch"];
|
||||
32 [label="Enter when branch result"];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
33 [label="Enter block"];
|
||||
34 [label="Const: Int(1)"];
|
||||
35 [label="Exit block"];
|
||||
}
|
||||
36 [label="Exit when branch result"];
|
||||
37 [label="Exit when"];
|
||||
}
|
||||
38 [label="Exit block"];
|
||||
}
|
||||
39 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||
}
|
||||
19 -> {20};
|
||||
20 -> {21};
|
||||
21 -> {22};
|
||||
|
||||
subgraph cluster_7 {
|
||||
color=red
|
||||
22 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
23 [label="Enter block"];
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
24 [label="Enter when"];
|
||||
subgraph cluster_10 {
|
||||
color=blue
|
||||
25 [label="Enter when branch condition "];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
26 [label="Enter &&"];
|
||||
27 [label="Access variable R|<local>/b1|"];
|
||||
28 [label="Exit left part of &&"];
|
||||
29 [label="Enter right part of &&"];
|
||||
30 [label="Access variable R|<local>/b2|"];
|
||||
31 [label="Exit &&"];
|
||||
}
|
||||
32 [label="Exit when branch condition"];
|
||||
}
|
||||
33 [label="Synthetic else branch"];
|
||||
34 [label="Enter when branch result"];
|
||||
subgraph cluster_12 {
|
||||
color=blue
|
||||
35 [label="Enter block"];
|
||||
36 [label="Const: Int(1)"];
|
||||
37 [label="Exit block"];
|
||||
}
|
||||
38 [label="Exit when branch result"];
|
||||
39 [label="Exit when"];
|
||||
}
|
||||
40 [label="Exit block"];
|
||||
}
|
||||
41 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||
}
|
||||
22 -> {23};
|
||||
23 -> {24};
|
||||
24 -> {25};
|
||||
25 -> {26};
|
||||
26 -> {27 29};
|
||||
26 -> {27};
|
||||
27 -> {28};
|
||||
28 -> {29};
|
||||
28 -> {29 31};
|
||||
29 -> {30};
|
||||
30 -> {31 32};
|
||||
31 -> {37};
|
||||
32 -> {33};
|
||||
33 -> {34};
|
||||
30 -> {31};
|
||||
31 -> {32};
|
||||
32 -> {33 34};
|
||||
33 -> {39};
|
||||
34 -> {35};
|
||||
35 -> {36};
|
||||
36 -> {37};
|
||||
37 -> {38};
|
||||
38 -> {39};
|
||||
|
||||
subgraph cluster_12 {
|
||||
color=red
|
||||
40 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||
subgraph cluster_13 {
|
||||
color=blue
|
||||
41 [label="Enter block"];
|
||||
subgraph cluster_14 {
|
||||
color=blue
|
||||
42 [label="Enter when"];
|
||||
subgraph cluster_15 {
|
||||
color=blue
|
||||
43 [label="Enter when branch condition "];
|
||||
subgraph cluster_16 {
|
||||
color=blue
|
||||
44 [label="Enter ||"];
|
||||
subgraph cluster_17 {
|
||||
color=blue
|
||||
45 [label="Enter &&"];
|
||||
46 [label="Access variable R|<local>/b1|"];
|
||||
47 [label="Exit left part of &&"];
|
||||
48 [label="Enter right part of &&"];
|
||||
49 [label="Access variable R|<local>/b2|"];
|
||||
50 [label="Exit &&"];
|
||||
}
|
||||
51 [label="Exit left part of ||"];
|
||||
52 [label="Enter right part of ||"];
|
||||
53 [label="Access variable R|<local>/b3|"];
|
||||
54 [label="Exit ||"];
|
||||
}
|
||||
55 [label="Exit when branch condition"];
|
||||
}
|
||||
56 [label="Synthetic else branch"];
|
||||
57 [label="Enter when branch result"];
|
||||
subgraph cluster_18 {
|
||||
color=blue
|
||||
58 [label="Enter block"];
|
||||
59 [label="Const: Int(1)"];
|
||||
60 [label="Exit block"];
|
||||
}
|
||||
61 [label="Exit when branch result"];
|
||||
62 [label="Exit when"];
|
||||
}
|
||||
63 [label="Exit block"];
|
||||
}
|
||||
64 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||
}
|
||||
39 -> {40};
|
||||
40 -> {41};
|
||||
41 -> {42};
|
||||
|
||||
subgraph cluster_13 {
|
||||
color=red
|
||||
42 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||
subgraph cluster_14 {
|
||||
color=blue
|
||||
43 [label="Enter block"];
|
||||
subgraph cluster_15 {
|
||||
color=blue
|
||||
44 [label="Enter when"];
|
||||
subgraph cluster_16 {
|
||||
color=blue
|
||||
45 [label="Enter when branch condition "];
|
||||
subgraph cluster_17 {
|
||||
color=blue
|
||||
46 [label="Enter ||"];
|
||||
subgraph cluster_18 {
|
||||
color=blue
|
||||
47 [label="Enter &&"];
|
||||
48 [label="Access variable R|<local>/b1|"];
|
||||
49 [label="Exit left part of &&"];
|
||||
50 [label="Enter right part of &&"];
|
||||
51 [label="Access variable R|<local>/b2|"];
|
||||
52 [label="Exit &&"];
|
||||
}
|
||||
53 [label="Exit left part of ||"];
|
||||
54 [label="Enter right part of ||"];
|
||||
55 [label="Access variable R|<local>/b3|"];
|
||||
56 [label="Exit ||"];
|
||||
}
|
||||
57 [label="Exit when branch condition"];
|
||||
}
|
||||
58 [label="Synthetic else branch"];
|
||||
59 [label="Enter when branch result"];
|
||||
subgraph cluster_19 {
|
||||
color=blue
|
||||
60 [label="Enter block"];
|
||||
61 [label="Const: Int(1)"];
|
||||
62 [label="Exit block"];
|
||||
}
|
||||
63 [label="Exit when branch result"];
|
||||
64 [label="Exit when"];
|
||||
}
|
||||
65 [label="Exit block"];
|
||||
}
|
||||
66 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||
}
|
||||
42 -> {43};
|
||||
43 -> {44};
|
||||
44 -> {45};
|
||||
45 -> {46};
|
||||
46 -> {47};
|
||||
47 -> {48 50};
|
||||
47 -> {48};
|
||||
48 -> {49};
|
||||
49 -> {50};
|
||||
49 -> {50 52};
|
||||
50 -> {51};
|
||||
51 -> {52 54};
|
||||
51 -> {52};
|
||||
52 -> {53};
|
||||
53 -> {54};
|
||||
53 -> {54 56};
|
||||
54 -> {55};
|
||||
55 -> {56 57};
|
||||
56 -> {62};
|
||||
57 -> {58};
|
||||
58 -> {59};
|
||||
55 -> {56};
|
||||
56 -> {57};
|
||||
57 -> {58 59};
|
||||
58 -> {64};
|
||||
59 -> {60};
|
||||
60 -> {61};
|
||||
61 -> {62};
|
||||
62 -> {63};
|
||||
63 -> {64};
|
||||
|
||||
subgraph cluster_19 {
|
||||
color=red
|
||||
65 [label="Enter function test_4" style="filled" fillcolor=red];
|
||||
subgraph cluster_20 {
|
||||
color=blue
|
||||
66 [label="Enter block"];
|
||||
subgraph cluster_21 {
|
||||
color=blue
|
||||
67 [label="Enter when"];
|
||||
subgraph cluster_22 {
|
||||
color=blue
|
||||
68 [label="Enter when branch condition "];
|
||||
subgraph cluster_23 {
|
||||
color=blue
|
||||
69 [label="Enter ||"];
|
||||
70 [label="Access variable R|<local>/b1|"];
|
||||
71 [label="Exit left part of ||"];
|
||||
72 [label="Enter right part of ||"];
|
||||
subgraph cluster_24 {
|
||||
color=blue
|
||||
73 [label="Enter &&"];
|
||||
74 [label="Access variable R|<local>/b2|"];
|
||||
75 [label="Exit left part of &&"];
|
||||
76 [label="Enter right part of &&"];
|
||||
77 [label="Access variable R|<local>/b3|"];
|
||||
78 [label="Exit &&"];
|
||||
}
|
||||
79 [label="Exit ||"];
|
||||
}
|
||||
80 [label="Exit when branch condition"];
|
||||
}
|
||||
81 [label="Synthetic else branch"];
|
||||
82 [label="Enter when branch result"];
|
||||
subgraph cluster_25 {
|
||||
color=blue
|
||||
83 [label="Enter block"];
|
||||
84 [label="Const: Int(1)"];
|
||||
85 [label="Exit block"];
|
||||
}
|
||||
86 [label="Exit when branch result"];
|
||||
87 [label="Exit when"];
|
||||
}
|
||||
88 [label="Exit block"];
|
||||
}
|
||||
89 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||
}
|
||||
64 -> {65};
|
||||
65 -> {66};
|
||||
66 -> {67};
|
||||
|
||||
subgraph cluster_20 {
|
||||
color=red
|
||||
67 [label="Enter function test_4" style="filled" fillcolor=red];
|
||||
subgraph cluster_21 {
|
||||
color=blue
|
||||
68 [label="Enter block"];
|
||||
subgraph cluster_22 {
|
||||
color=blue
|
||||
69 [label="Enter when"];
|
||||
subgraph cluster_23 {
|
||||
color=blue
|
||||
70 [label="Enter when branch condition "];
|
||||
subgraph cluster_24 {
|
||||
color=blue
|
||||
71 [label="Enter ||"];
|
||||
72 [label="Access variable R|<local>/b1|"];
|
||||
73 [label="Exit left part of ||"];
|
||||
74 [label="Enter right part of ||"];
|
||||
subgraph cluster_25 {
|
||||
color=blue
|
||||
75 [label="Enter &&"];
|
||||
76 [label="Access variable R|<local>/b2|"];
|
||||
77 [label="Exit left part of &&"];
|
||||
78 [label="Enter right part of &&"];
|
||||
79 [label="Access variable R|<local>/b3|"];
|
||||
80 [label="Exit &&"];
|
||||
}
|
||||
81 [label="Exit ||"];
|
||||
}
|
||||
82 [label="Exit when branch condition"];
|
||||
}
|
||||
83 [label="Synthetic else branch"];
|
||||
84 [label="Enter when branch result"];
|
||||
subgraph cluster_26 {
|
||||
color=blue
|
||||
85 [label="Enter block"];
|
||||
86 [label="Const: Int(1)"];
|
||||
87 [label="Exit block"];
|
||||
}
|
||||
88 [label="Exit when branch result"];
|
||||
89 [label="Exit when"];
|
||||
}
|
||||
90 [label="Exit block"];
|
||||
}
|
||||
91 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||
}
|
||||
67 -> {68};
|
||||
68 -> {69};
|
||||
69 -> {70};
|
||||
70 -> {71};
|
||||
71 -> {72 79};
|
||||
71 -> {72};
|
||||
72 -> {73};
|
||||
73 -> {74};
|
||||
73 -> {74 81};
|
||||
74 -> {75};
|
||||
75 -> {76 78};
|
||||
75 -> {76};
|
||||
76 -> {77};
|
||||
77 -> {78};
|
||||
77 -> {78 80};
|
||||
78 -> {79};
|
||||
79 -> {80};
|
||||
80 -> {81 82};
|
||||
81 -> {87};
|
||||
82 -> {83};
|
||||
83 -> {84};
|
||||
80 -> {81};
|
||||
81 -> {82};
|
||||
82 -> {83 84};
|
||||
83 -> {89};
|
||||
84 -> {85};
|
||||
85 -> {86};
|
||||
86 -> {87};
|
||||
87 -> {88};
|
||||
88 -> {89};
|
||||
89 -> {90};
|
||||
90 -> {91};
|
||||
|
||||
}
|
||||
|
||||
+374
-367
@@ -5,470 +5,477 @@ digraph booleanOperatorsWithConsts_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||
subgraph cluster_1 {
|
||||
color=blue
|
||||
1 [label="Enter block"];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
2 [label="Enter when"];
|
||||
subgraph cluster_3 {
|
||||
color=blue
|
||||
3 [label="Enter when branch condition "];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
4 [label="Enter ||"];
|
||||
5 [label="Access variable R|<local>/b|"];
|
||||
6 [label="Exit left part of ||"];
|
||||
7 [label="Enter right part of ||"];
|
||||
8 [label="Const: Boolean(false)"];
|
||||
9 [label="Exit ||"];
|
||||
}
|
||||
10 [label="Exit when branch condition"];
|
||||
}
|
||||
11 [label="Synthetic else branch"];
|
||||
12 [label="Enter when branch result"];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
13 [label="Enter block"];
|
||||
14 [label="Const: Int(1)"];
|
||||
15 [label="Exit block"];
|
||||
}
|
||||
16 [label="Exit when branch result"];
|
||||
17 [label="Exit when"];
|
||||
}
|
||||
18 [label="Exit block"];
|
||||
}
|
||||
19 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||
0 [label="Enter file booleanOperatorsWithConsts.kt" style="filled" fillcolor=red];
|
||||
1 [label="Exit file booleanOperatorsWithConsts.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1} [color=green];
|
||||
|
||||
subgraph cluster_1 {
|
||||
color=red
|
||||
2 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
3 [label="Enter block"];
|
||||
subgraph cluster_3 {
|
||||
color=blue
|
||||
4 [label="Enter when"];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
5 [label="Enter when branch condition "];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
6 [label="Enter ||"];
|
||||
7 [label="Access variable R|<local>/b|"];
|
||||
8 [label="Exit left part of ||"];
|
||||
9 [label="Enter right part of ||"];
|
||||
10 [label="Const: Boolean(false)"];
|
||||
11 [label="Exit ||"];
|
||||
}
|
||||
12 [label="Exit when branch condition"];
|
||||
}
|
||||
13 [label="Synthetic else branch"];
|
||||
14 [label="Enter when branch result"];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
15 [label="Enter block"];
|
||||
16 [label="Const: Int(1)"];
|
||||
17 [label="Exit block"];
|
||||
}
|
||||
18 [label="Exit when branch result"];
|
||||
19 [label="Exit when"];
|
||||
}
|
||||
20 [label="Exit block"];
|
||||
}
|
||||
21 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1};
|
||||
1 -> {2};
|
||||
2 -> {3};
|
||||
3 -> {4};
|
||||
4 -> {5};
|
||||
5 -> {6};
|
||||
6 -> {7 9};
|
||||
6 -> {7};
|
||||
7 -> {8};
|
||||
8 -> {9};
|
||||
8 -> {9 11};
|
||||
9 -> {10};
|
||||
10 -> {11 12};
|
||||
11 -> {17};
|
||||
12 -> {13};
|
||||
13 -> {14};
|
||||
10 -> {11};
|
||||
11 -> {12};
|
||||
12 -> {13 14};
|
||||
13 -> {19};
|
||||
14 -> {15};
|
||||
15 -> {16};
|
||||
16 -> {17};
|
||||
17 -> {18};
|
||||
18 -> {19};
|
||||
|
||||
subgraph cluster_6 {
|
||||
color=red
|
||||
20 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
21 [label="Enter block"];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
22 [label="Enter when"];
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
23 [label="Enter when branch condition "];
|
||||
subgraph cluster_10 {
|
||||
color=blue
|
||||
24 [label="Enter ||"];
|
||||
25 [label="Const: Boolean(false)"];
|
||||
26 [label="Exit left part of ||"];
|
||||
27 [label="Enter right part of ||"];
|
||||
28 [label="Access variable R|<local>/b|"];
|
||||
29 [label="Exit ||"];
|
||||
}
|
||||
30 [label="Exit when branch condition"];
|
||||
}
|
||||
31 [label="Synthetic else branch"];
|
||||
32 [label="Enter when branch result"];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
33 [label="Enter block"];
|
||||
34 [label="Const: Int(1)"];
|
||||
35 [label="Exit block"];
|
||||
}
|
||||
36 [label="Exit when branch result"];
|
||||
37 [label="Exit when"];
|
||||
}
|
||||
38 [label="Exit block"];
|
||||
}
|
||||
39 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||
}
|
||||
19 -> {20};
|
||||
20 -> {21};
|
||||
21 -> {22};
|
||||
|
||||
subgraph cluster_7 {
|
||||
color=red
|
||||
22 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
23 [label="Enter block"];
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
24 [label="Enter when"];
|
||||
subgraph cluster_10 {
|
||||
color=blue
|
||||
25 [label="Enter when branch condition "];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
26 [label="Enter ||"];
|
||||
27 [label="Const: Boolean(false)"];
|
||||
28 [label="Exit left part of ||"];
|
||||
29 [label="Enter right part of ||"];
|
||||
30 [label="Access variable R|<local>/b|"];
|
||||
31 [label="Exit ||"];
|
||||
}
|
||||
32 [label="Exit when branch condition"];
|
||||
}
|
||||
33 [label="Synthetic else branch"];
|
||||
34 [label="Enter when branch result"];
|
||||
subgraph cluster_12 {
|
||||
color=blue
|
||||
35 [label="Enter block"];
|
||||
36 [label="Const: Int(1)"];
|
||||
37 [label="Exit block"];
|
||||
}
|
||||
38 [label="Exit when branch result"];
|
||||
39 [label="Exit when"];
|
||||
}
|
||||
40 [label="Exit block"];
|
||||
}
|
||||
41 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||
}
|
||||
22 -> {23};
|
||||
23 -> {24};
|
||||
24 -> {25};
|
||||
25 -> {26};
|
||||
26 -> {27};
|
||||
26 -> {29} [style=dotted];
|
||||
27 -> {28};
|
||||
28 -> {29};
|
||||
28 -> {31} [style=dotted];
|
||||
29 -> {30};
|
||||
30 -> {31 32};
|
||||
31 -> {37};
|
||||
32 -> {33};
|
||||
33 -> {34};
|
||||
30 -> {31};
|
||||
31 -> {32};
|
||||
32 -> {33 34};
|
||||
33 -> {39};
|
||||
34 -> {35};
|
||||
35 -> {36};
|
||||
36 -> {37};
|
||||
37 -> {38};
|
||||
38 -> {39};
|
||||
|
||||
subgraph cluster_12 {
|
||||
color=red
|
||||
40 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||
subgraph cluster_13 {
|
||||
color=blue
|
||||
41 [label="Enter block"];
|
||||
subgraph cluster_14 {
|
||||
color=blue
|
||||
42 [label="Enter when"];
|
||||
subgraph cluster_15 {
|
||||
color=blue
|
||||
43 [label="Enter when branch condition "];
|
||||
subgraph cluster_16 {
|
||||
color=blue
|
||||
44 [label="Enter ||"];
|
||||
45 [label="Access variable R|<local>/b|"];
|
||||
46 [label="Exit left part of ||"];
|
||||
47 [label="Enter right part of ||"];
|
||||
48 [label="Const: Boolean(true)"];
|
||||
49 [label="Exit ||"];
|
||||
}
|
||||
50 [label="Exit when branch condition"];
|
||||
}
|
||||
51 [label="Synthetic else branch"];
|
||||
52 [label="Enter when branch result"];
|
||||
subgraph cluster_17 {
|
||||
color=blue
|
||||
53 [label="Enter block"];
|
||||
54 [label="Const: Int(1)"];
|
||||
55 [label="Exit block"];
|
||||
}
|
||||
56 [label="Exit when branch result"];
|
||||
57 [label="Exit when"];
|
||||
}
|
||||
58 [label="Exit block"];
|
||||
}
|
||||
59 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||
}
|
||||
39 -> {40};
|
||||
40 -> {41};
|
||||
41 -> {42};
|
||||
|
||||
subgraph cluster_13 {
|
||||
color=red
|
||||
42 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||
subgraph cluster_14 {
|
||||
color=blue
|
||||
43 [label="Enter block"];
|
||||
subgraph cluster_15 {
|
||||
color=blue
|
||||
44 [label="Enter when"];
|
||||
subgraph cluster_16 {
|
||||
color=blue
|
||||
45 [label="Enter when branch condition "];
|
||||
subgraph cluster_17 {
|
||||
color=blue
|
||||
46 [label="Enter ||"];
|
||||
47 [label="Access variable R|<local>/b|"];
|
||||
48 [label="Exit left part of ||"];
|
||||
49 [label="Enter right part of ||"];
|
||||
50 [label="Const: Boolean(true)"];
|
||||
51 [label="Exit ||"];
|
||||
}
|
||||
52 [label="Exit when branch condition"];
|
||||
}
|
||||
53 [label="Synthetic else branch"];
|
||||
54 [label="Enter when branch result"];
|
||||
subgraph cluster_18 {
|
||||
color=blue
|
||||
55 [label="Enter block"];
|
||||
56 [label="Const: Int(1)"];
|
||||
57 [label="Exit block"];
|
||||
}
|
||||
58 [label="Exit when branch result"];
|
||||
59 [label="Exit when"];
|
||||
}
|
||||
60 [label="Exit block"];
|
||||
}
|
||||
61 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||
}
|
||||
42 -> {43};
|
||||
43 -> {44};
|
||||
44 -> {45};
|
||||
45 -> {46};
|
||||
46 -> {47 49};
|
||||
46 -> {47};
|
||||
47 -> {48};
|
||||
48 -> {49};
|
||||
48 -> {49 51};
|
||||
49 -> {50};
|
||||
50 -> {51 52};
|
||||
51 -> {57};
|
||||
52 -> {53};
|
||||
53 -> {54};
|
||||
50 -> {51};
|
||||
51 -> {52};
|
||||
52 -> {53 54};
|
||||
53 -> {59};
|
||||
54 -> {55};
|
||||
55 -> {56};
|
||||
56 -> {57};
|
||||
57 -> {58};
|
||||
58 -> {59};
|
||||
|
||||
subgraph cluster_18 {
|
||||
color=red
|
||||
60 [label="Enter function test_4" style="filled" fillcolor=red];
|
||||
subgraph cluster_19 {
|
||||
color=blue
|
||||
61 [label="Enter block"];
|
||||
subgraph cluster_20 {
|
||||
color=blue
|
||||
62 [label="Enter when"];
|
||||
subgraph cluster_21 {
|
||||
color=blue
|
||||
63 [label="Enter when branch condition "];
|
||||
subgraph cluster_22 {
|
||||
color=blue
|
||||
64 [label="Enter ||"];
|
||||
65 [label="Const: Boolean(true)"];
|
||||
66 [label="Exit left part of ||"];
|
||||
67 [label="Enter right part of ||" style="filled" fillcolor=gray];
|
||||
68 [label="Access variable R|<local>/b|" style="filled" fillcolor=gray];
|
||||
69 [label="Exit ||"];
|
||||
}
|
||||
70 [label="Exit when branch condition"];
|
||||
}
|
||||
71 [label="Synthetic else branch"];
|
||||
72 [label="Enter when branch result"];
|
||||
subgraph cluster_23 {
|
||||
color=blue
|
||||
73 [label="Enter block"];
|
||||
74 [label="Const: Int(1)"];
|
||||
75 [label="Exit block"];
|
||||
}
|
||||
76 [label="Exit when branch result"];
|
||||
77 [label="Exit when"];
|
||||
}
|
||||
78 [label="Exit block"];
|
||||
}
|
||||
79 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||
}
|
||||
59 -> {60};
|
||||
60 -> {61};
|
||||
61 -> {62};
|
||||
|
||||
subgraph cluster_19 {
|
||||
color=red
|
||||
62 [label="Enter function test_4" style="filled" fillcolor=red];
|
||||
subgraph cluster_20 {
|
||||
color=blue
|
||||
63 [label="Enter block"];
|
||||
subgraph cluster_21 {
|
||||
color=blue
|
||||
64 [label="Enter when"];
|
||||
subgraph cluster_22 {
|
||||
color=blue
|
||||
65 [label="Enter when branch condition "];
|
||||
subgraph cluster_23 {
|
||||
color=blue
|
||||
66 [label="Enter ||"];
|
||||
67 [label="Const: Boolean(true)"];
|
||||
68 [label="Exit left part of ||"];
|
||||
69 [label="Enter right part of ||" style="filled" fillcolor=gray];
|
||||
70 [label="Access variable R|<local>/b|" style="filled" fillcolor=gray];
|
||||
71 [label="Exit ||"];
|
||||
}
|
||||
72 [label="Exit when branch condition"];
|
||||
}
|
||||
73 [label="Synthetic else branch"];
|
||||
74 [label="Enter when branch result"];
|
||||
subgraph cluster_24 {
|
||||
color=blue
|
||||
75 [label="Enter block"];
|
||||
76 [label="Const: Int(1)"];
|
||||
77 [label="Exit block"];
|
||||
}
|
||||
78 [label="Exit when branch result"];
|
||||
79 [label="Exit when"];
|
||||
}
|
||||
80 [label="Exit block"];
|
||||
}
|
||||
81 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||
}
|
||||
62 -> {63};
|
||||
63 -> {64};
|
||||
64 -> {65};
|
||||
65 -> {66};
|
||||
66 -> {69};
|
||||
66 -> {67} [style=dotted];
|
||||
67 -> {68} [style=dotted];
|
||||
66 -> {67};
|
||||
67 -> {68};
|
||||
68 -> {71};
|
||||
68 -> {69} [style=dotted];
|
||||
69 -> {70};
|
||||
70 -> {71 72};
|
||||
71 -> {77};
|
||||
72 -> {73};
|
||||
73 -> {74};
|
||||
69 -> {70} [style=dotted];
|
||||
70 -> {71} [style=dotted];
|
||||
71 -> {72};
|
||||
72 -> {73 74};
|
||||
73 -> {79};
|
||||
74 -> {75};
|
||||
75 -> {76};
|
||||
76 -> {77};
|
||||
77 -> {78};
|
||||
78 -> {79};
|
||||
|
||||
subgraph cluster_24 {
|
||||
color=red
|
||||
80 [label="Enter function test_5" style="filled" fillcolor=red];
|
||||
subgraph cluster_25 {
|
||||
color=blue
|
||||
81 [label="Enter block"];
|
||||
subgraph cluster_26 {
|
||||
color=blue
|
||||
82 [label="Enter when"];
|
||||
subgraph cluster_27 {
|
||||
color=blue
|
||||
83 [label="Enter when branch condition "];
|
||||
subgraph cluster_28 {
|
||||
color=blue
|
||||
84 [label="Enter &&"];
|
||||
85 [label="Access variable R|<local>/b|"];
|
||||
86 [label="Exit left part of &&"];
|
||||
87 [label="Enter right part of &&"];
|
||||
88 [label="Const: Boolean(false)"];
|
||||
89 [label="Exit &&"];
|
||||
}
|
||||
90 [label="Exit when branch condition"];
|
||||
}
|
||||
91 [label="Synthetic else branch"];
|
||||
92 [label="Enter when branch result"];
|
||||
subgraph cluster_29 {
|
||||
color=blue
|
||||
93 [label="Enter block"];
|
||||
94 [label="Const: Int(1)"];
|
||||
95 [label="Exit block"];
|
||||
}
|
||||
96 [label="Exit when branch result"];
|
||||
97 [label="Exit when"];
|
||||
}
|
||||
98 [label="Exit block"];
|
||||
}
|
||||
99 [label="Exit function test_5" style="filled" fillcolor=red];
|
||||
}
|
||||
79 -> {80};
|
||||
80 -> {81};
|
||||
81 -> {82};
|
||||
|
||||
subgraph cluster_25 {
|
||||
color=red
|
||||
82 [label="Enter function test_5" style="filled" fillcolor=red];
|
||||
subgraph cluster_26 {
|
||||
color=blue
|
||||
83 [label="Enter block"];
|
||||
subgraph cluster_27 {
|
||||
color=blue
|
||||
84 [label="Enter when"];
|
||||
subgraph cluster_28 {
|
||||
color=blue
|
||||
85 [label="Enter when branch condition "];
|
||||
subgraph cluster_29 {
|
||||
color=blue
|
||||
86 [label="Enter &&"];
|
||||
87 [label="Access variable R|<local>/b|"];
|
||||
88 [label="Exit left part of &&"];
|
||||
89 [label="Enter right part of &&"];
|
||||
90 [label="Const: Boolean(false)"];
|
||||
91 [label="Exit &&"];
|
||||
}
|
||||
92 [label="Exit when branch condition"];
|
||||
}
|
||||
93 [label="Synthetic else branch"];
|
||||
94 [label="Enter when branch result"];
|
||||
subgraph cluster_30 {
|
||||
color=blue
|
||||
95 [label="Enter block"];
|
||||
96 [label="Const: Int(1)"];
|
||||
97 [label="Exit block"];
|
||||
}
|
||||
98 [label="Exit when branch result"];
|
||||
99 [label="Exit when"];
|
||||
}
|
||||
100 [label="Exit block"];
|
||||
}
|
||||
101 [label="Exit function test_5" style="filled" fillcolor=red];
|
||||
}
|
||||
82 -> {83};
|
||||
83 -> {84};
|
||||
84 -> {85};
|
||||
85 -> {86};
|
||||
86 -> {87 89};
|
||||
86 -> {87};
|
||||
87 -> {88};
|
||||
88 -> {89};
|
||||
88 -> {89 91};
|
||||
89 -> {90};
|
||||
90 -> {91 92};
|
||||
91 -> {97};
|
||||
92 -> {93};
|
||||
93 -> {94};
|
||||
90 -> {91};
|
||||
91 -> {92};
|
||||
92 -> {93 94};
|
||||
93 -> {99};
|
||||
94 -> {95};
|
||||
95 -> {96};
|
||||
96 -> {97};
|
||||
97 -> {98};
|
||||
98 -> {99};
|
||||
|
||||
subgraph cluster_30 {
|
||||
color=red
|
||||
100 [label="Enter function test_6" style="filled" fillcolor=red];
|
||||
subgraph cluster_31 {
|
||||
color=blue
|
||||
101 [label="Enter block"];
|
||||
subgraph cluster_32 {
|
||||
color=blue
|
||||
102 [label="Enter when"];
|
||||
subgraph cluster_33 {
|
||||
color=blue
|
||||
103 [label="Enter when branch condition "];
|
||||
subgraph cluster_34 {
|
||||
color=blue
|
||||
104 [label="Enter &&"];
|
||||
105 [label="Const: Boolean(false)"];
|
||||
106 [label="Exit left part of &&"];
|
||||
107 [label="Enter right part of &&" style="filled" fillcolor=gray];
|
||||
108 [label="Access variable R|<local>/b|" style="filled" fillcolor=gray];
|
||||
109 [label="Exit &&"];
|
||||
}
|
||||
110 [label="Exit when branch condition"];
|
||||
}
|
||||
111 [label="Synthetic else branch"];
|
||||
112 [label="Enter when branch result"];
|
||||
subgraph cluster_35 {
|
||||
color=blue
|
||||
113 [label="Enter block"];
|
||||
114 [label="Const: Int(1)"];
|
||||
115 [label="Exit block"];
|
||||
}
|
||||
116 [label="Exit when branch result"];
|
||||
117 [label="Exit when"];
|
||||
}
|
||||
118 [label="Exit block"];
|
||||
}
|
||||
119 [label="Exit function test_6" style="filled" fillcolor=red];
|
||||
}
|
||||
99 -> {100};
|
||||
100 -> {101};
|
||||
101 -> {102};
|
||||
|
||||
subgraph cluster_31 {
|
||||
color=red
|
||||
102 [label="Enter function test_6" style="filled" fillcolor=red];
|
||||
subgraph cluster_32 {
|
||||
color=blue
|
||||
103 [label="Enter block"];
|
||||
subgraph cluster_33 {
|
||||
color=blue
|
||||
104 [label="Enter when"];
|
||||
subgraph cluster_34 {
|
||||
color=blue
|
||||
105 [label="Enter when branch condition "];
|
||||
subgraph cluster_35 {
|
||||
color=blue
|
||||
106 [label="Enter &&"];
|
||||
107 [label="Const: Boolean(false)"];
|
||||
108 [label="Exit left part of &&"];
|
||||
109 [label="Enter right part of &&" style="filled" fillcolor=gray];
|
||||
110 [label="Access variable R|<local>/b|" style="filled" fillcolor=gray];
|
||||
111 [label="Exit &&"];
|
||||
}
|
||||
112 [label="Exit when branch condition"];
|
||||
}
|
||||
113 [label="Synthetic else branch"];
|
||||
114 [label="Enter when branch result"];
|
||||
subgraph cluster_36 {
|
||||
color=blue
|
||||
115 [label="Enter block"];
|
||||
116 [label="Const: Int(1)"];
|
||||
117 [label="Exit block"];
|
||||
}
|
||||
118 [label="Exit when branch result"];
|
||||
119 [label="Exit when"];
|
||||
}
|
||||
120 [label="Exit block"];
|
||||
}
|
||||
121 [label="Exit function test_6" style="filled" fillcolor=red];
|
||||
}
|
||||
102 -> {103};
|
||||
103 -> {104};
|
||||
104 -> {105};
|
||||
105 -> {106};
|
||||
106 -> {109};
|
||||
106 -> {107} [style=dotted];
|
||||
107 -> {108} [style=dotted];
|
||||
106 -> {107};
|
||||
107 -> {108};
|
||||
108 -> {111};
|
||||
108 -> {109} [style=dotted];
|
||||
109 -> {110};
|
||||
110 -> {111 112};
|
||||
111 -> {117};
|
||||
112 -> {113};
|
||||
113 -> {114};
|
||||
109 -> {110} [style=dotted];
|
||||
110 -> {111} [style=dotted];
|
||||
111 -> {112};
|
||||
112 -> {113 114};
|
||||
113 -> {119};
|
||||
114 -> {115};
|
||||
115 -> {116};
|
||||
116 -> {117};
|
||||
117 -> {118};
|
||||
118 -> {119};
|
||||
|
||||
subgraph cluster_36 {
|
||||
color=red
|
||||
120 [label="Enter function test_7" style="filled" fillcolor=red];
|
||||
subgraph cluster_37 {
|
||||
color=blue
|
||||
121 [label="Enter block"];
|
||||
subgraph cluster_38 {
|
||||
color=blue
|
||||
122 [label="Enter when"];
|
||||
subgraph cluster_39 {
|
||||
color=blue
|
||||
123 [label="Enter when branch condition "];
|
||||
subgraph cluster_40 {
|
||||
color=blue
|
||||
124 [label="Enter &&"];
|
||||
125 [label="Access variable R|<local>/b|"];
|
||||
126 [label="Exit left part of &&"];
|
||||
127 [label="Enter right part of &&"];
|
||||
128 [label="Const: Boolean(true)"];
|
||||
129 [label="Exit &&"];
|
||||
}
|
||||
130 [label="Exit when branch condition"];
|
||||
}
|
||||
131 [label="Synthetic else branch"];
|
||||
132 [label="Enter when branch result"];
|
||||
subgraph cluster_41 {
|
||||
color=blue
|
||||
133 [label="Enter block"];
|
||||
134 [label="Const: Int(1)"];
|
||||
135 [label="Exit block"];
|
||||
}
|
||||
136 [label="Exit when branch result"];
|
||||
137 [label="Exit when"];
|
||||
}
|
||||
138 [label="Exit block"];
|
||||
}
|
||||
139 [label="Exit function test_7" style="filled" fillcolor=red];
|
||||
}
|
||||
119 -> {120};
|
||||
120 -> {121};
|
||||
121 -> {122};
|
||||
|
||||
subgraph cluster_37 {
|
||||
color=red
|
||||
122 [label="Enter function test_7" style="filled" fillcolor=red];
|
||||
subgraph cluster_38 {
|
||||
color=blue
|
||||
123 [label="Enter block"];
|
||||
subgraph cluster_39 {
|
||||
color=blue
|
||||
124 [label="Enter when"];
|
||||
subgraph cluster_40 {
|
||||
color=blue
|
||||
125 [label="Enter when branch condition "];
|
||||
subgraph cluster_41 {
|
||||
color=blue
|
||||
126 [label="Enter &&"];
|
||||
127 [label="Access variable R|<local>/b|"];
|
||||
128 [label="Exit left part of &&"];
|
||||
129 [label="Enter right part of &&"];
|
||||
130 [label="Const: Boolean(true)"];
|
||||
131 [label="Exit &&"];
|
||||
}
|
||||
132 [label="Exit when branch condition"];
|
||||
}
|
||||
133 [label="Synthetic else branch"];
|
||||
134 [label="Enter when branch result"];
|
||||
subgraph cluster_42 {
|
||||
color=blue
|
||||
135 [label="Enter block"];
|
||||
136 [label="Const: Int(1)"];
|
||||
137 [label="Exit block"];
|
||||
}
|
||||
138 [label="Exit when branch result"];
|
||||
139 [label="Exit when"];
|
||||
}
|
||||
140 [label="Exit block"];
|
||||
}
|
||||
141 [label="Exit function test_7" style="filled" fillcolor=red];
|
||||
}
|
||||
122 -> {123};
|
||||
123 -> {124};
|
||||
124 -> {125};
|
||||
125 -> {126};
|
||||
126 -> {127 129};
|
||||
126 -> {127};
|
||||
127 -> {128};
|
||||
128 -> {129};
|
||||
128 -> {129 131};
|
||||
129 -> {130};
|
||||
130 -> {131 132};
|
||||
131 -> {137};
|
||||
132 -> {133};
|
||||
133 -> {134};
|
||||
130 -> {131};
|
||||
131 -> {132};
|
||||
132 -> {133 134};
|
||||
133 -> {139};
|
||||
134 -> {135};
|
||||
135 -> {136};
|
||||
136 -> {137};
|
||||
137 -> {138};
|
||||
138 -> {139};
|
||||
|
||||
subgraph cluster_42 {
|
||||
color=red
|
||||
140 [label="Enter function test_8" style="filled" fillcolor=red];
|
||||
subgraph cluster_43 {
|
||||
color=blue
|
||||
141 [label="Enter block"];
|
||||
subgraph cluster_44 {
|
||||
color=blue
|
||||
142 [label="Enter when"];
|
||||
subgraph cluster_45 {
|
||||
color=blue
|
||||
143 [label="Enter when branch condition "];
|
||||
subgraph cluster_46 {
|
||||
color=blue
|
||||
144 [label="Enter &&"];
|
||||
145 [label="Const: Boolean(true)"];
|
||||
146 [label="Exit left part of &&"];
|
||||
147 [label="Enter right part of &&"];
|
||||
148 [label="Access variable R|<local>/b|"];
|
||||
149 [label="Exit &&"];
|
||||
}
|
||||
150 [label="Exit when branch condition"];
|
||||
}
|
||||
151 [label="Synthetic else branch"];
|
||||
152 [label="Enter when branch result"];
|
||||
subgraph cluster_47 {
|
||||
color=blue
|
||||
153 [label="Enter block"];
|
||||
154 [label="Const: Int(1)"];
|
||||
155 [label="Exit block"];
|
||||
}
|
||||
156 [label="Exit when branch result"];
|
||||
157 [label="Exit when"];
|
||||
}
|
||||
158 [label="Exit block"];
|
||||
}
|
||||
159 [label="Exit function test_8" style="filled" fillcolor=red];
|
||||
}
|
||||
139 -> {140};
|
||||
140 -> {141};
|
||||
141 -> {142};
|
||||
|
||||
subgraph cluster_43 {
|
||||
color=red
|
||||
142 [label="Enter function test_8" style="filled" fillcolor=red];
|
||||
subgraph cluster_44 {
|
||||
color=blue
|
||||
143 [label="Enter block"];
|
||||
subgraph cluster_45 {
|
||||
color=blue
|
||||
144 [label="Enter when"];
|
||||
subgraph cluster_46 {
|
||||
color=blue
|
||||
145 [label="Enter when branch condition "];
|
||||
subgraph cluster_47 {
|
||||
color=blue
|
||||
146 [label="Enter &&"];
|
||||
147 [label="Const: Boolean(true)"];
|
||||
148 [label="Exit left part of &&"];
|
||||
149 [label="Enter right part of &&"];
|
||||
150 [label="Access variable R|<local>/b|"];
|
||||
151 [label="Exit &&"];
|
||||
}
|
||||
152 [label="Exit when branch condition"];
|
||||
}
|
||||
153 [label="Synthetic else branch"];
|
||||
154 [label="Enter when branch result"];
|
||||
subgraph cluster_48 {
|
||||
color=blue
|
||||
155 [label="Enter block"];
|
||||
156 [label="Const: Int(1)"];
|
||||
157 [label="Exit block"];
|
||||
}
|
||||
158 [label="Exit when branch result"];
|
||||
159 [label="Exit when"];
|
||||
}
|
||||
160 [label="Exit block"];
|
||||
}
|
||||
161 [label="Exit function test_8" style="filled" fillcolor=red];
|
||||
}
|
||||
142 -> {143};
|
||||
143 -> {144};
|
||||
144 -> {145};
|
||||
145 -> {146};
|
||||
146 -> {147};
|
||||
146 -> {149} [style=dotted];
|
||||
147 -> {148};
|
||||
148 -> {149};
|
||||
148 -> {151} [style=dotted];
|
||||
149 -> {150};
|
||||
150 -> {151 152};
|
||||
151 -> {157};
|
||||
152 -> {153};
|
||||
153 -> {154};
|
||||
150 -> {151};
|
||||
151 -> {152};
|
||||
152 -> {153 154};
|
||||
153 -> {159};
|
||||
154 -> {155};
|
||||
155 -> {156};
|
||||
156 -> {157};
|
||||
157 -> {158};
|
||||
158 -> {159};
|
||||
159 -> {160};
|
||||
160 -> {161};
|
||||
|
||||
}
|
||||
|
||||
+172
-165
@@ -5,104 +5,111 @@ digraph complex_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter class AutoCloseable" style="filled" fillcolor=red];
|
||||
1 [label="Exit class AutoCloseable" style="filled" fillcolor=red];
|
||||
0 [label="Enter file complex.kt" style="filled" fillcolor=red];
|
||||
1 [label="Exit file complex.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1} [color=green];
|
||||
|
||||
subgraph cluster_1 {
|
||||
color=red
|
||||
2 [label="Enter function close" style="filled" fillcolor=red];
|
||||
3 [label="Exit function close" style="filled" fillcolor=red];
|
||||
2 [label="Enter class AutoCloseable" style="filled" fillcolor=red];
|
||||
3 [label="Exit class AutoCloseable" style="filled" fillcolor=red];
|
||||
}
|
||||
2 -> {3};
|
||||
2 -> {3} [color=green];
|
||||
|
||||
subgraph cluster_2 {
|
||||
color=red
|
||||
4 [label="Enter function closeFinally" style="filled" fillcolor=red];
|
||||
subgraph cluster_3 {
|
||||
4 [label="Enter function close" style="filled" fillcolor=red];
|
||||
5 [label="Exit function close" style="filled" fillcolor=red];
|
||||
}
|
||||
4 -> {5};
|
||||
|
||||
subgraph cluster_3 {
|
||||
color=red
|
||||
6 [label="Enter function closeFinally" style="filled" fillcolor=red];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
5 [label="Enter block"];
|
||||
subgraph cluster_4 {
|
||||
7 [label="Enter block"];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
6 [label="Enter when"];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
7 [label="Enter when branch condition "];
|
||||
8 [label="Access variable this@R|/closeFinally|"];
|
||||
9 [label="Const: Null(null)"];
|
||||
10 [label="Equality operator =="];
|
||||
11 [label="Exit when branch condition"];
|
||||
}
|
||||
8 [label="Enter when"];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
12 [label="Enter when branch condition "];
|
||||
13 [label="Access variable R|<local>/cause|"];
|
||||
14 [label="Const: Null(null)"];
|
||||
15 [label="Equality operator =="];
|
||||
16 [label="Exit when branch condition"];
|
||||
9 [label="Enter when branch condition "];
|
||||
10 [label="Access variable this@R|/closeFinally|"];
|
||||
11 [label="Const: Null(null)"];
|
||||
12 [label="Equality operator =="];
|
||||
13 [label="Exit when branch condition"];
|
||||
}
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
17 [label="Enter when branch condition else"];
|
||||
14 [label="Enter when branch condition "];
|
||||
15 [label="Access variable R|<local>/cause|"];
|
||||
16 [label="Const: Null(null)"];
|
||||
17 [label="Equality operator =="];
|
||||
18 [label="Exit when branch condition"];
|
||||
}
|
||||
19 [label="Enter when branch result"];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
20 [label="Enter block"];
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
21 [label="Try expression enter"];
|
||||
subgraph cluster_10 {
|
||||
color=blue
|
||||
22 [label="Try main block enter"];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
23 [label="Enter block"];
|
||||
24 [label="Function call: this@R|/closeFinally|.R|/AutoCloseable.close|()" style="filled" fillcolor=yellow];
|
||||
25 [label="Exit block"];
|
||||
}
|
||||
26 [label="Try main block exit"];
|
||||
}
|
||||
subgraph cluster_12 {
|
||||
color=blue
|
||||
27 [label="Catch enter"];
|
||||
28 [label="Variable declaration: closeException: R|kotlin/Throwable|"];
|
||||
subgraph cluster_13 {
|
||||
color=blue
|
||||
29 [label="Enter block"];
|
||||
30 [label="Access variable R|<local>/cause|"];
|
||||
31 [label="Smart cast: R|<local>/cause|"];
|
||||
32 [label="Access variable R|<local>/closeException|"];
|
||||
33 [label="Function call: R|<local>/cause|.R|kotlin/Throwable.addSuppressed|(...)" style="filled" fillcolor=yellow];
|
||||
34 [label="Exit block"];
|
||||
}
|
||||
35 [label="Catch exit"];
|
||||
}
|
||||
36 [label="Try expression exit"];
|
||||
}
|
||||
37 [label="Exit block"];
|
||||
19 [label="Enter when branch condition else"];
|
||||
20 [label="Exit when branch condition"];
|
||||
}
|
||||
38 [label="Exit when branch result"];
|
||||
39 [label="Enter when branch result"];
|
||||
subgraph cluster_14 {
|
||||
21 [label="Enter when branch result"];
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
40 [label="Enter block"];
|
||||
41 [label="Function call: this@R|/closeFinally|.R|/AutoCloseable.close|()" style="filled" fillcolor=yellow];
|
||||
42 [label="Exit block"];
|
||||
22 [label="Enter block"];
|
||||
subgraph cluster_10 {
|
||||
color=blue
|
||||
23 [label="Try expression enter"];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
24 [label="Try main block enter"];
|
||||
subgraph cluster_12 {
|
||||
color=blue
|
||||
25 [label="Enter block"];
|
||||
26 [label="Function call: this@R|/closeFinally|.R|/AutoCloseable.close|()" style="filled" fillcolor=yellow];
|
||||
27 [label="Exit block"];
|
||||
}
|
||||
28 [label="Try main block exit"];
|
||||
}
|
||||
subgraph cluster_13 {
|
||||
color=blue
|
||||
29 [label="Catch enter"];
|
||||
30 [label="Variable declaration: closeException: R|kotlin/Throwable|"];
|
||||
subgraph cluster_14 {
|
||||
color=blue
|
||||
31 [label="Enter block"];
|
||||
32 [label="Access variable R|<local>/cause|"];
|
||||
33 [label="Smart cast: R|<local>/cause|"];
|
||||
34 [label="Access variable R|<local>/closeException|"];
|
||||
35 [label="Function call: R|<local>/cause|.R|kotlin/Throwable.addSuppressed|(...)" style="filled" fillcolor=yellow];
|
||||
36 [label="Exit block"];
|
||||
}
|
||||
37 [label="Catch exit"];
|
||||
}
|
||||
38 [label="Try expression exit"];
|
||||
}
|
||||
39 [label="Exit block"];
|
||||
}
|
||||
43 [label="Exit when branch result"];
|
||||
44 [label="Enter when branch result"];
|
||||
40 [label="Exit when branch result"];
|
||||
41 [label="Enter when branch result"];
|
||||
subgraph cluster_15 {
|
||||
color=blue
|
||||
45 [label="Enter block"];
|
||||
46 [label="Exit block"];
|
||||
42 [label="Enter block"];
|
||||
43 [label="Function call: this@R|/closeFinally|.R|/AutoCloseable.close|()" style="filled" fillcolor=yellow];
|
||||
44 [label="Exit block"];
|
||||
}
|
||||
47 [label="Exit when branch result"];
|
||||
48 [label="Exit when"];
|
||||
45 [label="Exit when branch result"];
|
||||
46 [label="Enter when branch result"];
|
||||
subgraph cluster_16 {
|
||||
color=blue
|
||||
47 [label="Enter block"];
|
||||
48 [label="Exit block"];
|
||||
}
|
||||
49 [label="Exit when branch result"];
|
||||
50 [label="Exit when"];
|
||||
}
|
||||
49 [label="Jump: ^closeFinally when () {
|
||||
51 [label="Jump: ^closeFinally when () {
|
||||
==(this@R|/closeFinally|, Null(null)) -> {
|
||||
}
|
||||
==(R|<local>/cause|, Null(null)) -> {
|
||||
@@ -119,36 +126,34 @@ digraph complex_kt {
|
||||
}
|
||||
}
|
||||
"];
|
||||
50 [label="Stub" style="filled" fillcolor=gray];
|
||||
51 [label="Exit block" style="filled" fillcolor=gray];
|
||||
52 [label="Stub" style="filled" fillcolor=gray];
|
||||
53 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
52 [label="Exit function closeFinally" style="filled" fillcolor=red];
|
||||
54 [label="Exit function closeFinally" style="filled" fillcolor=red];
|
||||
}
|
||||
4 -> {5};
|
||||
5 -> {6};
|
||||
6 -> {7};
|
||||
7 -> {8};
|
||||
8 -> {9};
|
||||
9 -> {10};
|
||||
10 -> {11};
|
||||
11 -> {12 44};
|
||||
11 -> {12};
|
||||
12 -> {13};
|
||||
13 -> {14};
|
||||
13 -> {14 46};
|
||||
14 -> {15};
|
||||
15 -> {16};
|
||||
16 -> {17 39};
|
||||
16 -> {17};
|
||||
17 -> {18};
|
||||
18 -> {19};
|
||||
18 -> {19 41};
|
||||
19 -> {20};
|
||||
20 -> {21};
|
||||
21 -> {22 27};
|
||||
21 -> {22};
|
||||
22 -> {23};
|
||||
23 -> {24};
|
||||
24 -> {25 27};
|
||||
23 -> {24 29};
|
||||
24 -> {25};
|
||||
25 -> {26};
|
||||
26 -> {27 36};
|
||||
26 -> {27 29};
|
||||
27 -> {28};
|
||||
28 -> {29};
|
||||
28 -> {29 38};
|
||||
29 -> {30};
|
||||
30 -> {31};
|
||||
31 -> {32};
|
||||
@@ -158,99 +163,99 @@ digraph complex_kt {
|
||||
35 -> {36};
|
||||
36 -> {37};
|
||||
37 -> {38};
|
||||
38 -> {48};
|
||||
38 -> {39};
|
||||
39 -> {40};
|
||||
40 -> {41};
|
||||
40 -> {50};
|
||||
41 -> {42};
|
||||
42 -> {43};
|
||||
43 -> {48};
|
||||
43 -> {44};
|
||||
44 -> {45};
|
||||
45 -> {46};
|
||||
45 -> {50};
|
||||
46 -> {47};
|
||||
47 -> {48};
|
||||
48 -> {49};
|
||||
49 -> {52};
|
||||
49 -> {50} [style=dotted];
|
||||
50 -> {51} [style=dotted];
|
||||
49 -> {50};
|
||||
50 -> {51};
|
||||
51 -> {54};
|
||||
51 -> {52} [style=dotted];
|
||||
52 -> {53} [style=dotted];
|
||||
53 -> {54} [style=dotted];
|
||||
|
||||
subgraph cluster_16 {
|
||||
subgraph cluster_17 {
|
||||
color=red
|
||||
53 [label="Enter function firstIsInstanceOrNull" style="filled" fillcolor=red];
|
||||
subgraph cluster_17 {
|
||||
55 [label="Enter function firstIsInstanceOrNull" style="filled" fillcolor=red];
|
||||
subgraph cluster_18 {
|
||||
color=blue
|
||||
54 [label="Enter block"];
|
||||
subgraph cluster_18 {
|
||||
56 [label="Enter block"];
|
||||
subgraph cluster_19 {
|
||||
color=blue
|
||||
55 [label="Enter block"];
|
||||
56 [label="Access variable this@R|/firstIsInstanceOrNull|"];
|
||||
57 [label="Function call: this@R|/firstIsInstanceOrNull|.R|SubstitutionOverride<kotlin/collections/List.iterator: R|kotlin/collections/Iterator<kotlin/Any?>|>|()" style="filled" fillcolor=yellow];
|
||||
58 [label="Variable declaration: lval <iterator>: R|kotlin/collections/Iterator<kotlin/Any?>|"];
|
||||
subgraph cluster_19 {
|
||||
57 [label="Enter block"];
|
||||
58 [label="Access variable this@R|/firstIsInstanceOrNull|"];
|
||||
59 [label="Function call: this@R|/firstIsInstanceOrNull|.R|SubstitutionOverride<kotlin/collections/List.iterator: R|kotlin/collections/Iterator<kotlin/Any?>|>|()" style="filled" fillcolor=yellow];
|
||||
60 [label="Variable declaration: lval <iterator>: R|kotlin/collections/Iterator<kotlin/Any?>|"];
|
||||
subgraph cluster_20 {
|
||||
color=blue
|
||||
59 [label="Enter while loop"];
|
||||
subgraph cluster_20 {
|
||||
color=blue
|
||||
60 [label="Enter loop condition"];
|
||||
61 [label="Access variable R|<local>/<iterator>|"];
|
||||
62 [label="Function call: R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/Iterator.hasNext: R|kotlin/Boolean|>|()" style="filled" fillcolor=yellow];
|
||||
63 [label="Exit loop condition"];
|
||||
}
|
||||
61 [label="Enter while loop"];
|
||||
subgraph cluster_21 {
|
||||
color=blue
|
||||
64 [label="Enter loop block"];
|
||||
subgraph cluster_22 {
|
||||
62 [label="Enter loop condition"];
|
||||
63 [label="Access variable R|<local>/<iterator>|"];
|
||||
64 [label="Function call: R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/Iterator.hasNext: R|kotlin/Boolean|>|()" style="filled" fillcolor=yellow];
|
||||
65 [label="Exit loop condition"];
|
||||
}
|
||||
subgraph cluster_22 {
|
||||
color=blue
|
||||
66 [label="Enter loop block"];
|
||||
subgraph cluster_23 {
|
||||
color=blue
|
||||
65 [label="Enter block"];
|
||||
66 [label="Access variable R|<local>/<iterator>|"];
|
||||
67 [label="Function call: R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/Iterator.next: R|kotlin/Any?|>|()" style="filled" fillcolor=yellow];
|
||||
68 [label="Variable declaration: lval element: R|kotlin/Any?|"];
|
||||
subgraph cluster_23 {
|
||||
67 [label="Enter block"];
|
||||
68 [label="Access variable R|<local>/<iterator>|"];
|
||||
69 [label="Function call: R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/Iterator.next: R|kotlin/Any?|>|()" style="filled" fillcolor=yellow];
|
||||
70 [label="Variable declaration: lval element: R|kotlin/Any?|"];
|
||||
subgraph cluster_24 {
|
||||
color=blue
|
||||
69 [label="Enter block"];
|
||||
subgraph cluster_24 {
|
||||
71 [label="Enter block"];
|
||||
subgraph cluster_25 {
|
||||
color=blue
|
||||
70 [label="Enter when"];
|
||||
subgraph cluster_25 {
|
||||
color=blue
|
||||
71 [label="Enter when branch condition "];
|
||||
72 [label="Access variable R|<local>/element|"];
|
||||
73 [label="Type operator: (R|<local>/element| is R|T|)"];
|
||||
74 [label="Exit when branch condition"];
|
||||
}
|
||||
75 [label="Synthetic else branch"];
|
||||
76 [label="Enter when branch result"];
|
||||
72 [label="Enter when"];
|
||||
subgraph cluster_26 {
|
||||
color=blue
|
||||
77 [label="Enter block"];
|
||||
78 [label="Access variable R|<local>/element|"];
|
||||
79 [label="Smart cast: R|<local>/element|"];
|
||||
80 [label="Jump: ^firstIsInstanceOrNull R|<local>/element|"];
|
||||
81 [label="Stub" style="filled" fillcolor=gray];
|
||||
82 [label="Exit block" style="filled" fillcolor=gray];
|
||||
73 [label="Enter when branch condition "];
|
||||
74 [label="Access variable R|<local>/element|"];
|
||||
75 [label="Type operator: (R|<local>/element| is R|T|)"];
|
||||
76 [label="Exit when branch condition"];
|
||||
}
|
||||
83 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
84 [label="Exit when"];
|
||||
77 [label="Synthetic else branch"];
|
||||
78 [label="Enter when branch result"];
|
||||
subgraph cluster_27 {
|
||||
color=blue
|
||||
79 [label="Enter block"];
|
||||
80 [label="Access variable R|<local>/element|"];
|
||||
81 [label="Smart cast: R|<local>/element|"];
|
||||
82 [label="Jump: ^firstIsInstanceOrNull R|<local>/element|"];
|
||||
83 [label="Stub" style="filled" fillcolor=gray];
|
||||
84 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
85 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
86 [label="Exit when"];
|
||||
}
|
||||
85 [label="Exit block"];
|
||||
87 [label="Exit block"];
|
||||
}
|
||||
86 [label="Exit block"];
|
||||
88 [label="Exit block"];
|
||||
}
|
||||
87 [label="Exit loop block"];
|
||||
89 [label="Exit loop block"];
|
||||
}
|
||||
88 [label="Exit while loop"];
|
||||
90 [label="Exit while loop"];
|
||||
}
|
||||
89 [label="Exit block"];
|
||||
91 [label="Exit block"];
|
||||
}
|
||||
90 [label="Const: Null(null)"];
|
||||
91 [label="Jump: ^firstIsInstanceOrNull Null(null)"];
|
||||
92 [label="Stub" style="filled" fillcolor=gray];
|
||||
93 [label="Exit block" style="filled" fillcolor=gray];
|
||||
92 [label="Const: Null(null)"];
|
||||
93 [label="Jump: ^firstIsInstanceOrNull Null(null)"];
|
||||
94 [label="Stub" style="filled" fillcolor=gray];
|
||||
95 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
94 [label="Exit function firstIsInstanceOrNull" style="filled" fillcolor=red];
|
||||
96 [label="Exit function firstIsInstanceOrNull" style="filled" fillcolor=red];
|
||||
}
|
||||
53 -> {54};
|
||||
54 -> {55};
|
||||
55 -> {56};
|
||||
56 -> {57};
|
||||
57 -> {58};
|
||||
@@ -259,9 +264,9 @@ digraph complex_kt {
|
||||
60 -> {61};
|
||||
61 -> {62};
|
||||
62 -> {63};
|
||||
63 -> {64 88};
|
||||
63 -> {64};
|
||||
64 -> {65};
|
||||
65 -> {66};
|
||||
65 -> {66 90};
|
||||
66 -> {67};
|
||||
67 -> {68};
|
||||
68 -> {69};
|
||||
@@ -270,27 +275,29 @@ digraph complex_kt {
|
||||
71 -> {72};
|
||||
72 -> {73};
|
||||
73 -> {74};
|
||||
74 -> {75 76};
|
||||
75 -> {84};
|
||||
76 -> {77};
|
||||
77 -> {78};
|
||||
74 -> {75};
|
||||
75 -> {76};
|
||||
76 -> {77 78};
|
||||
77 -> {86};
|
||||
78 -> {79};
|
||||
79 -> {80};
|
||||
80 -> {94};
|
||||
80 -> {81} [style=dotted];
|
||||
81 -> {82} [style=dotted];
|
||||
80 -> {81};
|
||||
81 -> {82};
|
||||
82 -> {96};
|
||||
82 -> {83} [style=dotted];
|
||||
83 -> {84} [style=dotted];
|
||||
84 -> {85};
|
||||
85 -> {86};
|
||||
84 -> {85} [style=dotted];
|
||||
85 -> {86} [style=dotted];
|
||||
86 -> {87};
|
||||
87 -> {60} [color=green style=dashed];
|
||||
87 -> {88};
|
||||
88 -> {89};
|
||||
89 -> {90};
|
||||
89 -> {62} [color=green style=dashed];
|
||||
90 -> {91};
|
||||
91 -> {94};
|
||||
91 -> {92} [style=dotted];
|
||||
92 -> {93} [style=dotted];
|
||||
91 -> {92};
|
||||
92 -> {93};
|
||||
93 -> {96};
|
||||
93 -> {94} [style=dotted];
|
||||
94 -> {95} [style=dotted];
|
||||
95 -> {96} [style=dotted];
|
||||
|
||||
}
|
||||
|
||||
@@ -5,82 +5,87 @@ digraph defaultArguments_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter function foo" style="filled" fillcolor=red];
|
||||
subgraph cluster_1 {
|
||||
color=blue
|
||||
1 [label="Enter block"];
|
||||
2 [label="Const: Int(1)"];
|
||||
3 [label="Jump: ^foo Int(1)"];
|
||||
4 [label="Stub" style="filled" fillcolor=gray];
|
||||
5 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
6 [label="Exit function foo" style="filled" fillcolor=red];
|
||||
0 [label="Enter file defaultArguments.kt" style="filled" fillcolor=red];
|
||||
1 [label="Exit file defaultArguments.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1};
|
||||
1 -> {2};
|
||||
2 -> {3};
|
||||
3 -> {6};
|
||||
3 -> {4} [style=dotted];
|
||||
4 -> {5} [style=dotted];
|
||||
5 -> {6} [style=dotted];
|
||||
0 -> {1} [color=green];
|
||||
|
||||
subgraph cluster_2 {
|
||||
subgraph cluster_1 {
|
||||
color=red
|
||||
7 [label="Enter function test" style="filled" fillcolor=red];
|
||||
8 [label="Enter default value of y"];
|
||||
subgraph cluster_3 {
|
||||
2 [label="Enter function foo" style="filled" fillcolor=red];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
9 [label="Enter default value of y" style="filled" fillcolor=red];
|
||||
10 [label="Access variable R|<local>/x|"];
|
||||
11 [label="Type operator: (R|<local>/x| as R|kotlin/String|)"];
|
||||
12 [label="Exit default value of y" style="filled" fillcolor=red];
|
||||
3 [label="Enter block"];
|
||||
4 [label="Const: Int(1)"];
|
||||
5 [label="Jump: ^foo Int(1)"];
|
||||
6 [label="Stub" style="filled" fillcolor=gray];
|
||||
7 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
13 [label="Exit default value of y"];
|
||||
14 [label="Enter default value of z"];
|
||||
8 [label="Exit function foo" style="filled" fillcolor=red];
|
||||
}
|
||||
2 -> {3};
|
||||
3 -> {4};
|
||||
4 -> {5};
|
||||
5 -> {8};
|
||||
5 -> {6} [style=dotted];
|
||||
6 -> {7} [style=dotted];
|
||||
7 -> {8} [style=dotted];
|
||||
|
||||
subgraph cluster_3 {
|
||||
color=red
|
||||
9 [label="Enter function test" style="filled" fillcolor=red];
|
||||
10 [label="Enter default value of y"];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
15 [label="Enter default value of z" style="filled" fillcolor=red];
|
||||
16 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
17 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
18 [label="Enter block"];
|
||||
19 [label="Function call: R|/foo|()" style="filled" fillcolor=yellow];
|
||||
20 [label="Exit block"];
|
||||
}
|
||||
21 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
22 [label="Postponed exit from lambda"];
|
||||
23 [label="Function call: R|kotlin/run|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
||||
24 [label="Exit default value of z" style="filled" fillcolor=red];
|
||||
11 [label="Enter default value of y" style="filled" fillcolor=red];
|
||||
12 [label="Access variable R|<local>/x|"];
|
||||
13 [label="Type operator: (R|<local>/x| as R|kotlin/String|)"];
|
||||
14 [label="Exit default value of y" style="filled" fillcolor=red];
|
||||
}
|
||||
25 [label="Exit default value of z"];
|
||||
subgraph cluster_7 {
|
||||
15 [label="Exit default value of y"];
|
||||
16 [label="Enter default value of z"];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
26 [label="Enter block"];
|
||||
27 [label="Function call: R|/foo|()" style="filled" fillcolor=yellow];
|
||||
28 [label="Exit block"];
|
||||
17 [label="Enter default value of z" style="filled" fillcolor=red];
|
||||
18 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
19 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
20 [label="Enter block"];
|
||||
21 [label="Function call: R|/foo|()" style="filled" fillcolor=yellow];
|
||||
22 [label="Exit block"];
|
||||
}
|
||||
23 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
24 [label="Postponed exit from lambda"];
|
||||
25 [label="Function call: R|kotlin/run|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
||||
26 [label="Exit default value of z" style="filled" fillcolor=red];
|
||||
}
|
||||
29 [label="Exit function test" style="filled" fillcolor=red];
|
||||
27 [label="Exit default value of z"];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
28 [label="Enter block"];
|
||||
29 [label="Function call: R|/foo|()" style="filled" fillcolor=yellow];
|
||||
30 [label="Exit block"];
|
||||
}
|
||||
31 [label="Exit function test" style="filled" fillcolor=red];
|
||||
}
|
||||
7 -> {8};
|
||||
8 -> {9 13};
|
||||
8 -> {9} [style=dashed];
|
||||
9 -> {10};
|
||||
10 -> {11};
|
||||
10 -> {11 15};
|
||||
10 -> {11} [style=dashed];
|
||||
11 -> {12};
|
||||
12 -> {13};
|
||||
13 -> {14};
|
||||
14 -> {15 25};
|
||||
14 -> {15} [style=dashed];
|
||||
14 -> {15};
|
||||
15 -> {16};
|
||||
16 -> {17 23};
|
||||
16 -> {22} [style=dotted];
|
||||
16 -> {17 27};
|
||||
16 -> {17} [style=dashed];
|
||||
17 -> {18};
|
||||
18 -> {19};
|
||||
18 -> {19 25};
|
||||
18 -> {24} [style=dotted];
|
||||
18 -> {19} [style=dashed];
|
||||
19 -> {20};
|
||||
20 -> {21};
|
||||
21 -> {22};
|
||||
@@ -91,5 +96,7 @@ digraph defaultArguments_kt {
|
||||
26 -> {27};
|
||||
27 -> {28};
|
||||
28 -> {29};
|
||||
29 -> {30};
|
||||
30 -> {31};
|
||||
|
||||
}
|
||||
|
||||
+61
-54
@@ -5,77 +5,84 @@ digraph emptyWhen_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||
subgraph cluster_1 {
|
||||
color=blue
|
||||
1 [label="Enter block"];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
2 [label="Enter when"];
|
||||
3 [label="Synthetic else branch"];
|
||||
4 [label="Exit when"];
|
||||
}
|
||||
5 [label="Exit block"];
|
||||
}
|
||||
6 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||
0 [label="Enter file emptyWhen.kt" style="filled" fillcolor=red];
|
||||
1 [label="Exit file emptyWhen.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1} [color=green];
|
||||
|
||||
subgraph cluster_1 {
|
||||
color=red
|
||||
2 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
3 [label="Enter block"];
|
||||
subgraph cluster_3 {
|
||||
color=blue
|
||||
4 [label="Enter when"];
|
||||
5 [label="Synthetic else branch"];
|
||||
6 [label="Exit when"];
|
||||
}
|
||||
7 [label="Exit block"];
|
||||
}
|
||||
8 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1};
|
||||
1 -> {2};
|
||||
2 -> {3};
|
||||
3 -> {4};
|
||||
4 -> {5};
|
||||
5 -> {6};
|
||||
|
||||
subgraph cluster_3 {
|
||||
color=red
|
||||
7 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
8 [label="Enter block"];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
9 [label="Enter when"];
|
||||
10 [label="Access variable R|<local>/x|"];
|
||||
11 [label="Synthetic else branch"];
|
||||
12 [label="Exit when"];
|
||||
}
|
||||
13 [label="Exit block"];
|
||||
}
|
||||
14 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||
}
|
||||
6 -> {7};
|
||||
7 -> {8};
|
||||
8 -> {9};
|
||||
|
||||
subgraph cluster_4 {
|
||||
color=red
|
||||
9 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
10 [label="Enter block"];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
11 [label="Enter when"];
|
||||
12 [label="Access variable R|<local>/x|"];
|
||||
13 [label="Synthetic else branch"];
|
||||
14 [label="Exit when"];
|
||||
}
|
||||
15 [label="Exit block"];
|
||||
}
|
||||
16 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||
}
|
||||
9 -> {10};
|
||||
10 -> {11};
|
||||
11 -> {12};
|
||||
12 -> {13};
|
||||
13 -> {14};
|
||||
|
||||
subgraph cluster_6 {
|
||||
color=red
|
||||
15 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
16 [label="Enter block"];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
17 [label="Enter when"];
|
||||
18 [label="Access variable R|<local>/x|"];
|
||||
19 [label="Variable declaration: lval y: R|kotlin/Int|"];
|
||||
20 [label="Synthetic else branch"];
|
||||
21 [label="Exit when"];
|
||||
}
|
||||
22 [label="Exit block"];
|
||||
}
|
||||
23 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||
}
|
||||
14 -> {15};
|
||||
15 -> {16};
|
||||
16 -> {17};
|
||||
|
||||
subgraph cluster_7 {
|
||||
color=red
|
||||
17 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
18 [label="Enter block"];
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
19 [label="Enter when"];
|
||||
20 [label="Access variable R|<local>/x|"];
|
||||
21 [label="Variable declaration: lval y: R|kotlin/Int|"];
|
||||
22 [label="Synthetic else branch"];
|
||||
23 [label="Exit when"];
|
||||
}
|
||||
24 [label="Exit block"];
|
||||
}
|
||||
25 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||
}
|
||||
17 -> {18};
|
||||
18 -> {19};
|
||||
19 -> {20};
|
||||
20 -> {21};
|
||||
21 -> {22};
|
||||
22 -> {23};
|
||||
23 -> {24};
|
||||
24 -> {25};
|
||||
|
||||
}
|
||||
|
||||
+1019
-1012
File diff suppressed because it is too large
Load Diff
+634
-627
File diff suppressed because it is too large
Load Diff
+287
-280
@@ -5,331 +5,336 @@ digraph flowFromInplaceLambda3_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter function unknown" style="filled" fillcolor=red];
|
||||
subgraph cluster_1 {
|
||||
color=blue
|
||||
1 [label="Enter block"];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
2 [label="Enter block"];
|
||||
3 [label="Exit block"];
|
||||
}
|
||||
4 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||
5 [label="Exit block"];
|
||||
}
|
||||
6 [label="Exit function unknown" style="filled" fillcolor=red];
|
||||
0 [label="Enter file flowFromInplaceLambda3.kt" style="filled" fillcolor=red];
|
||||
1 [label="Exit file flowFromInplaceLambda3.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1} [color=green];
|
||||
|
||||
subgraph cluster_1 {
|
||||
color=red
|
||||
2 [label="Enter function unknown" style="filled" fillcolor=red];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
3 [label="Enter block"];
|
||||
subgraph cluster_3 {
|
||||
color=blue
|
||||
4 [label="Enter block"];
|
||||
5 [label="Exit block"];
|
||||
}
|
||||
6 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||
7 [label="Exit block"];
|
||||
}
|
||||
8 [label="Exit function unknown" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1};
|
||||
1 -> {2};
|
||||
2 -> {3};
|
||||
3 -> {4};
|
||||
4 -> {5};
|
||||
5 -> {6};
|
||||
|
||||
subgraph cluster_3 {
|
||||
color=red
|
||||
7 [label="Enter function atLeastOnce" style="filled" fillcolor=red];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
8 [label="Enter block"];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
9 [label="Enter block"];
|
||||
10 [label="Exit block"];
|
||||
}
|
||||
11 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||
12 [label="Exit block"];
|
||||
}
|
||||
13 [label="Exit function atLeastOnce" style="filled" fillcolor=red];
|
||||
}
|
||||
6 -> {7};
|
||||
7 -> {8};
|
||||
8 -> {9};
|
||||
|
||||
subgraph cluster_4 {
|
||||
color=red
|
||||
9 [label="Enter function atLeastOnce" style="filled" fillcolor=red];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
10 [label="Enter block"];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
11 [label="Enter block"];
|
||||
12 [label="Exit block"];
|
||||
}
|
||||
13 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||
14 [label="Exit block"];
|
||||
}
|
||||
15 [label="Exit function atLeastOnce" style="filled" fillcolor=red];
|
||||
}
|
||||
9 -> {10};
|
||||
10 -> {11};
|
||||
11 -> {12};
|
||||
12 -> {13};
|
||||
|
||||
subgraph cluster_6 {
|
||||
color=red
|
||||
14 [label="Enter function exactlyOnce" style="filled" fillcolor=red];
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
15 [label="Enter block"];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
16 [label="Enter block"];
|
||||
17 [label="Exit block"];
|
||||
}
|
||||
18 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||
19 [label="Exit block"];
|
||||
}
|
||||
20 [label="Exit function exactlyOnce" style="filled" fillcolor=red];
|
||||
}
|
||||
13 -> {14};
|
||||
14 -> {15};
|
||||
15 -> {16};
|
||||
|
||||
subgraph cluster_7 {
|
||||
color=red
|
||||
16 [label="Enter function exactlyOnce" style="filled" fillcolor=red];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
17 [label="Enter block"];
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
18 [label="Enter block"];
|
||||
19 [label="Exit block"];
|
||||
}
|
||||
20 [label="Function call: R|<local>/x|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||
21 [label="Exit block"];
|
||||
}
|
||||
22 [label="Exit function exactlyOnce" style="filled" fillcolor=red];
|
||||
}
|
||||
16 -> {17};
|
||||
17 -> {18};
|
||||
18 -> {19};
|
||||
19 -> {20};
|
||||
|
||||
subgraph cluster_9 {
|
||||
color=red
|
||||
21 [label="Enter function atMostOnce" style="filled" fillcolor=red];
|
||||
subgraph cluster_10 {
|
||||
color=blue
|
||||
22 [label="Enter block"];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
23 [label="Enter block"];
|
||||
24 [label="Exit block"];
|
||||
}
|
||||
25 [label="Exit block"];
|
||||
}
|
||||
26 [label="Exit function atMostOnce" style="filled" fillcolor=red];
|
||||
}
|
||||
20 -> {21};
|
||||
21 -> {22};
|
||||
22 -> {23};
|
||||
|
||||
subgraph cluster_10 {
|
||||
color=red
|
||||
23 [label="Enter function atMostOnce" style="filled" fillcolor=red];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
24 [label="Enter block"];
|
||||
subgraph cluster_12 {
|
||||
color=blue
|
||||
25 [label="Enter block"];
|
||||
26 [label="Exit block"];
|
||||
}
|
||||
27 [label="Exit block"];
|
||||
}
|
||||
28 [label="Exit function atMostOnce" style="filled" fillcolor=red];
|
||||
}
|
||||
23 -> {24};
|
||||
24 -> {25};
|
||||
25 -> {26};
|
||||
|
||||
subgraph cluster_12 {
|
||||
color=red
|
||||
27 [label="Enter function test1" style="filled" fillcolor=red];
|
||||
subgraph cluster_13 {
|
||||
color=blue
|
||||
28 [label="Enter block"];
|
||||
29 [label="Variable declaration: lvar x: R|kotlin/Any?|"];
|
||||
30 [label="Const: String()"];
|
||||
31 [label="Assignment: R|<local>/x|"];
|
||||
32 [label="Access variable R|<local>/x|"];
|
||||
33 [label="Smart cast: R|<local>/x|"];
|
||||
34 [label="Access variable R|kotlin/String.length|"];
|
||||
35 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_14 {
|
||||
color=blue
|
||||
36 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_15 {
|
||||
color=blue
|
||||
37 [label="Enter block"];
|
||||
38 [label="Const: Int(1)"];
|
||||
39 [label="Assignment: R|<local>/x|"];
|
||||
40 [label="Exit block"];
|
||||
}
|
||||
41 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
42 [label="Postponed exit from lambda"];
|
||||
43 [label="Function call: R|/unknown|(...)" style="filled" fillcolor=yellow];
|
||||
44 [label="Access variable R|<local>/x|"];
|
||||
45 [label="Smart cast: R|<local>/x|"];
|
||||
46 [label="Access variable <Unresolved name: length>#"];
|
||||
47 [label="Access variable R|<local>/x|"];
|
||||
48 [label="Smart cast: R|<local>/x|"];
|
||||
49 [label="Function call: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
|
||||
50 [label="Exit block"];
|
||||
}
|
||||
51 [label="Exit function test1" style="filled" fillcolor=red];
|
||||
}
|
||||
26 -> {27};
|
||||
27 -> {28};
|
||||
28 -> {29};
|
||||
|
||||
subgraph cluster_13 {
|
||||
color=red
|
||||
29 [label="Enter function test1" style="filled" fillcolor=red];
|
||||
subgraph cluster_14 {
|
||||
color=blue
|
||||
30 [label="Enter block"];
|
||||
31 [label="Variable declaration: lvar x: R|kotlin/Any?|"];
|
||||
32 [label="Const: String()"];
|
||||
33 [label="Assignment: R|<local>/x|"];
|
||||
34 [label="Access variable R|<local>/x|"];
|
||||
35 [label="Smart cast: R|<local>/x|"];
|
||||
36 [label="Access variable R|kotlin/String.length|"];
|
||||
37 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_15 {
|
||||
color=blue
|
||||
38 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_16 {
|
||||
color=blue
|
||||
39 [label="Enter block"];
|
||||
40 [label="Const: Int(1)"];
|
||||
41 [label="Assignment: R|<local>/x|"];
|
||||
42 [label="Exit block"];
|
||||
}
|
||||
43 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
44 [label="Postponed exit from lambda"];
|
||||
45 [label="Function call: R|/unknown|(...)" style="filled" fillcolor=yellow];
|
||||
46 [label="Access variable R|<local>/x|"];
|
||||
47 [label="Smart cast: R|<local>/x|"];
|
||||
48 [label="Access variable <Unresolved name: length>#"];
|
||||
49 [label="Access variable R|<local>/x|"];
|
||||
50 [label="Smart cast: R|<local>/x|"];
|
||||
51 [label="Function call: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
|
||||
52 [label="Exit block"];
|
||||
}
|
||||
53 [label="Exit function test1" style="filled" fillcolor=red];
|
||||
}
|
||||
29 -> {30};
|
||||
30 -> {31};
|
||||
31 -> {32};
|
||||
32 -> {33};
|
||||
33 -> {34};
|
||||
34 -> {35};
|
||||
35 -> {36 42 43};
|
||||
35 -> {36} [style=dashed];
|
||||
35 -> {36};
|
||||
36 -> {37};
|
||||
37 -> {38};
|
||||
37 -> {38 44 45};
|
||||
37 -> {38} [style=dashed];
|
||||
38 -> {39};
|
||||
39 -> {40};
|
||||
40 -> {41};
|
||||
41 -> {42};
|
||||
42 -> {43};
|
||||
42 -> {35} [color=green style=dashed];
|
||||
43 -> {44};
|
||||
44 -> {45};
|
||||
44 -> {37} [color=green style=dashed];
|
||||
45 -> {46};
|
||||
46 -> {47};
|
||||
47 -> {48};
|
||||
48 -> {49};
|
||||
49 -> {50};
|
||||
50 -> {51};
|
||||
|
||||
subgraph cluster_16 {
|
||||
color=red
|
||||
52 [label="Enter function test1m" style="filled" fillcolor=red];
|
||||
subgraph cluster_17 {
|
||||
color=blue
|
||||
53 [label="Enter block"];
|
||||
54 [label="Variable declaration: lvar x: R|kotlin/Any?|"];
|
||||
55 [label="Const: String()"];
|
||||
56 [label="Assignment: R|<local>/x|"];
|
||||
57 [label="Access variable R|<local>/x|"];
|
||||
58 [label="Smart cast: R|<local>/x|"];
|
||||
59 [label="Access variable R|kotlin/String.length|"];
|
||||
60 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_18 {
|
||||
color=blue
|
||||
61 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_19 {
|
||||
color=blue
|
||||
62 [label="Enter block"];
|
||||
63 [label="Const: String()"];
|
||||
64 [label="Assignment: R|<local>/x|"];
|
||||
65 [label="Exit block"];
|
||||
}
|
||||
66 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
67 [label="Postponed exit from lambda"];
|
||||
68 [label="Function call: R|/unknown|(...)" style="filled" fillcolor=yellow];
|
||||
69 [label="Access variable R|<local>/x|"];
|
||||
70 [label="Smart cast: R|<local>/x|"];
|
||||
71 [label="Access variable R|kotlin/String.length|"];
|
||||
72 [label="Exit block"];
|
||||
}
|
||||
73 [label="Exit function test1m" style="filled" fillcolor=red];
|
||||
}
|
||||
51 -> {52};
|
||||
52 -> {53};
|
||||
53 -> {54};
|
||||
|
||||
subgraph cluster_17 {
|
||||
color=red
|
||||
54 [label="Enter function test1m" style="filled" fillcolor=red];
|
||||
subgraph cluster_18 {
|
||||
color=blue
|
||||
55 [label="Enter block"];
|
||||
56 [label="Variable declaration: lvar x: R|kotlin/Any?|"];
|
||||
57 [label="Const: String()"];
|
||||
58 [label="Assignment: R|<local>/x|"];
|
||||
59 [label="Access variable R|<local>/x|"];
|
||||
60 [label="Smart cast: R|<local>/x|"];
|
||||
61 [label="Access variable R|kotlin/String.length|"];
|
||||
62 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_19 {
|
||||
color=blue
|
||||
63 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_20 {
|
||||
color=blue
|
||||
64 [label="Enter block"];
|
||||
65 [label="Const: String()"];
|
||||
66 [label="Assignment: R|<local>/x|"];
|
||||
67 [label="Exit block"];
|
||||
}
|
||||
68 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
69 [label="Postponed exit from lambda"];
|
||||
70 [label="Function call: R|/unknown|(...)" style="filled" fillcolor=yellow];
|
||||
71 [label="Access variable R|<local>/x|"];
|
||||
72 [label="Smart cast: R|<local>/x|"];
|
||||
73 [label="Access variable R|kotlin/String.length|"];
|
||||
74 [label="Exit block"];
|
||||
}
|
||||
75 [label="Exit function test1m" style="filled" fillcolor=red];
|
||||
}
|
||||
54 -> {55};
|
||||
55 -> {56};
|
||||
56 -> {57};
|
||||
57 -> {58};
|
||||
58 -> {59};
|
||||
59 -> {60};
|
||||
60 -> {61 67 68};
|
||||
60 -> {61} [style=dashed];
|
||||
60 -> {61};
|
||||
61 -> {62};
|
||||
62 -> {63};
|
||||
62 -> {63 69 70};
|
||||
62 -> {63} [style=dashed];
|
||||
63 -> {64};
|
||||
64 -> {65};
|
||||
65 -> {66};
|
||||
66 -> {67};
|
||||
67 -> {68};
|
||||
67 -> {60} [color=green style=dashed];
|
||||
68 -> {69};
|
||||
69 -> {70};
|
||||
69 -> {62} [color=green style=dashed];
|
||||
70 -> {71};
|
||||
71 -> {72};
|
||||
72 -> {73};
|
||||
|
||||
subgraph cluster_20 {
|
||||
color=red
|
||||
74 [label="Enter function test2" style="filled" fillcolor=red];
|
||||
subgraph cluster_21 {
|
||||
color=blue
|
||||
75 [label="Enter block"];
|
||||
76 [label="Variable declaration: lvar x: R|kotlin/Any?|"];
|
||||
77 [label="Const: String()"];
|
||||
78 [label="Assignment: R|<local>/x|"];
|
||||
79 [label="Access variable R|<local>/x|"];
|
||||
80 [label="Smart cast: R|<local>/x|"];
|
||||
81 [label="Access variable R|kotlin/String.length|"];
|
||||
82 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_22 {
|
||||
color=blue
|
||||
83 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_23 {
|
||||
color=blue
|
||||
84 [label="Enter block"];
|
||||
85 [label="Const: Int(1)"];
|
||||
86 [label="Assignment: R|<local>/x|"];
|
||||
87 [label="Exit block"];
|
||||
}
|
||||
88 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
89 [label="Postponed exit from lambda"];
|
||||
90 [label="Function call: R|/atLeastOnce|(...)" style="filled" fillcolor=yellow];
|
||||
91 [label="Access variable R|<local>/x|"];
|
||||
92 [label="Smart cast: R|<local>/x|"];
|
||||
93 [label="Access variable <Unresolved name: length>#"];
|
||||
94 [label="Access variable R|<local>/x|"];
|
||||
95 [label="Smart cast: R|<local>/x|"];
|
||||
96 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||
97 [label="Exit block"];
|
||||
}
|
||||
98 [label="Exit function test2" style="filled" fillcolor=red];
|
||||
}
|
||||
73 -> {74};
|
||||
74 -> {75};
|
||||
75 -> {76};
|
||||
|
||||
subgraph cluster_21 {
|
||||
color=red
|
||||
76 [label="Enter function test2" style="filled" fillcolor=red];
|
||||
subgraph cluster_22 {
|
||||
color=blue
|
||||
77 [label="Enter block"];
|
||||
78 [label="Variable declaration: lvar x: R|kotlin/Any?|"];
|
||||
79 [label="Const: String()"];
|
||||
80 [label="Assignment: R|<local>/x|"];
|
||||
81 [label="Access variable R|<local>/x|"];
|
||||
82 [label="Smart cast: R|<local>/x|"];
|
||||
83 [label="Access variable R|kotlin/String.length|"];
|
||||
84 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_23 {
|
||||
color=blue
|
||||
85 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_24 {
|
||||
color=blue
|
||||
86 [label="Enter block"];
|
||||
87 [label="Const: Int(1)"];
|
||||
88 [label="Assignment: R|<local>/x|"];
|
||||
89 [label="Exit block"];
|
||||
}
|
||||
90 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
91 [label="Postponed exit from lambda"];
|
||||
92 [label="Function call: R|/atLeastOnce|(...)" style="filled" fillcolor=yellow];
|
||||
93 [label="Access variable R|<local>/x|"];
|
||||
94 [label="Smart cast: R|<local>/x|"];
|
||||
95 [label="Access variable <Unresolved name: length>#"];
|
||||
96 [label="Access variable R|<local>/x|"];
|
||||
97 [label="Smart cast: R|<local>/x|"];
|
||||
98 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||
99 [label="Exit block"];
|
||||
}
|
||||
100 [label="Exit function test2" style="filled" fillcolor=red];
|
||||
}
|
||||
76 -> {77};
|
||||
77 -> {78};
|
||||
78 -> {79};
|
||||
79 -> {80};
|
||||
80 -> {81};
|
||||
81 -> {82};
|
||||
82 -> {83 90};
|
||||
82 -> {89} [style=dotted];
|
||||
82 -> {83} [style=dashed];
|
||||
82 -> {83};
|
||||
83 -> {84};
|
||||
84 -> {85};
|
||||
84 -> {85 92};
|
||||
84 -> {91} [style=dotted];
|
||||
84 -> {85} [style=dashed];
|
||||
85 -> {86};
|
||||
86 -> {87};
|
||||
87 -> {88};
|
||||
88 -> {89};
|
||||
89 -> {90};
|
||||
89 -> {82} [color=green style=dashed];
|
||||
90 -> {91};
|
||||
91 -> {92};
|
||||
91 -> {84} [color=green style=dashed];
|
||||
92 -> {93};
|
||||
93 -> {94};
|
||||
94 -> {95};
|
||||
95 -> {96};
|
||||
96 -> {97};
|
||||
97 -> {98};
|
||||
|
||||
subgraph cluster_24 {
|
||||
color=red
|
||||
99 [label="Enter function test3" style="filled" fillcolor=red];
|
||||
subgraph cluster_25 {
|
||||
color=blue
|
||||
100 [label="Enter block"];
|
||||
101 [label="Variable declaration: lvar x: R|kotlin/Any?|"];
|
||||
102 [label="Const: String()"];
|
||||
103 [label="Assignment: R|<local>/x|"];
|
||||
104 [label="Access variable R|<local>/x|"];
|
||||
105 [label="Smart cast: R|<local>/x|"];
|
||||
106 [label="Access variable R|kotlin/String.length|"];
|
||||
107 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_26 {
|
||||
color=blue
|
||||
108 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_27 {
|
||||
color=blue
|
||||
109 [label="Enter block"];
|
||||
110 [label="Const: Int(1)"];
|
||||
111 [label="Assignment: R|<local>/x|"];
|
||||
112 [label="Exit block"];
|
||||
}
|
||||
113 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
114 [label="Postponed exit from lambda"];
|
||||
115 [label="Function call: R|/exactlyOnce|(...)" style="filled" fillcolor=yellow];
|
||||
116 [label="Access variable R|<local>/x|"];
|
||||
117 [label="Smart cast: R|<local>/x|"];
|
||||
118 [label="Access variable <Unresolved name: length>#"];
|
||||
119 [label="Access variable R|<local>/x|"];
|
||||
120 [label="Smart cast: R|<local>/x|"];
|
||||
121 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||
122 [label="Exit block"];
|
||||
}
|
||||
123 [label="Exit function test3" style="filled" fillcolor=red];
|
||||
}
|
||||
98 -> {99};
|
||||
99 -> {100};
|
||||
100 -> {101};
|
||||
|
||||
subgraph cluster_25 {
|
||||
color=red
|
||||
101 [label="Enter function test3" style="filled" fillcolor=red];
|
||||
subgraph cluster_26 {
|
||||
color=blue
|
||||
102 [label="Enter block"];
|
||||
103 [label="Variable declaration: lvar x: R|kotlin/Any?|"];
|
||||
104 [label="Const: String()"];
|
||||
105 [label="Assignment: R|<local>/x|"];
|
||||
106 [label="Access variable R|<local>/x|"];
|
||||
107 [label="Smart cast: R|<local>/x|"];
|
||||
108 [label="Access variable R|kotlin/String.length|"];
|
||||
109 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_27 {
|
||||
color=blue
|
||||
110 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_28 {
|
||||
color=blue
|
||||
111 [label="Enter block"];
|
||||
112 [label="Const: Int(1)"];
|
||||
113 [label="Assignment: R|<local>/x|"];
|
||||
114 [label="Exit block"];
|
||||
}
|
||||
115 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
116 [label="Postponed exit from lambda"];
|
||||
117 [label="Function call: R|/exactlyOnce|(...)" style="filled" fillcolor=yellow];
|
||||
118 [label="Access variable R|<local>/x|"];
|
||||
119 [label="Smart cast: R|<local>/x|"];
|
||||
120 [label="Access variable <Unresolved name: length>#"];
|
||||
121 [label="Access variable R|<local>/x|"];
|
||||
122 [label="Smart cast: R|<local>/x|"];
|
||||
123 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||
124 [label="Exit block"];
|
||||
}
|
||||
125 [label="Exit function test3" style="filled" fillcolor=red];
|
||||
}
|
||||
101 -> {102};
|
||||
102 -> {103};
|
||||
103 -> {104};
|
||||
104 -> {105};
|
||||
105 -> {106};
|
||||
106 -> {107};
|
||||
107 -> {108 115};
|
||||
107 -> {114} [style=dotted];
|
||||
107 -> {108} [style=dashed];
|
||||
107 -> {108};
|
||||
108 -> {109};
|
||||
109 -> {110};
|
||||
109 -> {110 117};
|
||||
109 -> {116} [style=dotted];
|
||||
109 -> {110} [style=dashed];
|
||||
110 -> {111};
|
||||
111 -> {112};
|
||||
112 -> {113};
|
||||
@@ -343,56 +348,56 @@ digraph flowFromInplaceLambda3_kt {
|
||||
120 -> {121};
|
||||
121 -> {122};
|
||||
122 -> {123};
|
||||
|
||||
subgraph cluster_28 {
|
||||
color=red
|
||||
124 [label="Enter function test4" style="filled" fillcolor=red];
|
||||
subgraph cluster_29 {
|
||||
color=blue
|
||||
125 [label="Enter block"];
|
||||
126 [label="Variable declaration: lvar x: R|kotlin/Any?|"];
|
||||
127 [label="Const: String()"];
|
||||
128 [label="Assignment: R|<local>/x|"];
|
||||
129 [label="Access variable R|<local>/x|"];
|
||||
130 [label="Smart cast: R|<local>/x|"];
|
||||
131 [label="Access variable R|kotlin/String.length|"];
|
||||
132 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_30 {
|
||||
color=blue
|
||||
133 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_31 {
|
||||
color=blue
|
||||
134 [label="Enter block"];
|
||||
135 [label="Const: Int(1)"];
|
||||
136 [label="Assignment: R|<local>/x|"];
|
||||
137 [label="Exit block"];
|
||||
}
|
||||
138 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
139 [label="Postponed exit from lambda"];
|
||||
140 [label="Function call: R|/atMostOnce|(...)" style="filled" fillcolor=yellow];
|
||||
141 [label="Access variable R|<local>/x|"];
|
||||
142 [label="Smart cast: R|<local>/x|"];
|
||||
143 [label="Access variable <Unresolved name: length>#"];
|
||||
144 [label="Access variable R|<local>/x|"];
|
||||
145 [label="Smart cast: R|<local>/x|"];
|
||||
146 [label="Function call: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
|
||||
147 [label="Exit block"];
|
||||
}
|
||||
148 [label="Exit function test4" style="filled" fillcolor=red];
|
||||
}
|
||||
123 -> {124};
|
||||
124 -> {125};
|
||||
125 -> {126};
|
||||
|
||||
subgraph cluster_29 {
|
||||
color=red
|
||||
126 [label="Enter function test4" style="filled" fillcolor=red];
|
||||
subgraph cluster_30 {
|
||||
color=blue
|
||||
127 [label="Enter block"];
|
||||
128 [label="Variable declaration: lvar x: R|kotlin/Any?|"];
|
||||
129 [label="Const: String()"];
|
||||
130 [label="Assignment: R|<local>/x|"];
|
||||
131 [label="Access variable R|<local>/x|"];
|
||||
132 [label="Smart cast: R|<local>/x|"];
|
||||
133 [label="Access variable R|kotlin/String.length|"];
|
||||
134 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_31 {
|
||||
color=blue
|
||||
135 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_32 {
|
||||
color=blue
|
||||
136 [label="Enter block"];
|
||||
137 [label="Const: Int(1)"];
|
||||
138 [label="Assignment: R|<local>/x|"];
|
||||
139 [label="Exit block"];
|
||||
}
|
||||
140 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
141 [label="Postponed exit from lambda"];
|
||||
142 [label="Function call: R|/atMostOnce|(...)" style="filled" fillcolor=yellow];
|
||||
143 [label="Access variable R|<local>/x|"];
|
||||
144 [label="Smart cast: R|<local>/x|"];
|
||||
145 [label="Access variable <Unresolved name: length>#"];
|
||||
146 [label="Access variable R|<local>/x|"];
|
||||
147 [label="Smart cast: R|<local>/x|"];
|
||||
148 [label="Function call: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
|
||||
149 [label="Exit block"];
|
||||
}
|
||||
150 [label="Exit function test4" style="filled" fillcolor=red];
|
||||
}
|
||||
126 -> {127};
|
||||
127 -> {128};
|
||||
128 -> {129};
|
||||
129 -> {130};
|
||||
130 -> {131};
|
||||
131 -> {132};
|
||||
132 -> {133 139 140};
|
||||
132 -> {133} [style=dashed];
|
||||
132 -> {133};
|
||||
133 -> {134};
|
||||
134 -> {135};
|
||||
134 -> {135 141 142};
|
||||
134 -> {135} [style=dashed];
|
||||
135 -> {136};
|
||||
136 -> {137};
|
||||
137 -> {138};
|
||||
@@ -406,5 +411,7 @@ digraph flowFromInplaceLambda3_kt {
|
||||
145 -> {146};
|
||||
146 -> {147};
|
||||
147 -> {148};
|
||||
148 -> {149};
|
||||
149 -> {150};
|
||||
|
||||
}
|
||||
|
||||
+581
-574
File diff suppressed because it is too large
Load Diff
+69
-62
@@ -5,78 +5,83 @@ digraph initBlock_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter class Foo" style="filled" fillcolor=red];
|
||||
subgraph cluster_1 {
|
||||
color=blue
|
||||
1 [label="Enter init block" style="filled" fillcolor=red];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
2 [label="Enter block"];
|
||||
3 [label="Const: Int(1)"];
|
||||
4 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||
5 [label="Exit block"];
|
||||
}
|
||||
6 [label="Exit init block" style="filled" fillcolor=red];
|
||||
}
|
||||
subgraph cluster_3 {
|
||||
color=blue
|
||||
7 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
8 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
9 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
}
|
||||
10 [label="Exit class Foo" style="filled" fillcolor=red];
|
||||
0 [label="Enter file initBlock.kt" style="filled" fillcolor=red];
|
||||
1 [label="Exit file initBlock.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1} [color=green];
|
||||
0 -> {10} [style=dotted];
|
||||
0 -> {1 7} [style=dashed];
|
||||
1 -> {2};
|
||||
2 -> {3};
|
||||
|
||||
subgraph cluster_1 {
|
||||
color=red
|
||||
2 [label="Enter class Foo" style="filled" fillcolor=red];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
3 [label="Enter init block" style="filled" fillcolor=red];
|
||||
subgraph cluster_3 {
|
||||
color=blue
|
||||
4 [label="Enter block"];
|
||||
5 [label="Const: Int(1)"];
|
||||
6 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||
7 [label="Exit block"];
|
||||
}
|
||||
8 [label="Exit init block" style="filled" fillcolor=red];
|
||||
}
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
9 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
10 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
11 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
}
|
||||
12 [label="Exit class Foo" style="filled" fillcolor=red];
|
||||
}
|
||||
2 -> {3} [color=green];
|
||||
2 -> {12} [style=dotted];
|
||||
2 -> {3 9} [style=dashed];
|
||||
3 -> {4};
|
||||
4 -> {5};
|
||||
5 -> {6};
|
||||
6 -> {7} [color=green];
|
||||
6 -> {7};
|
||||
7 -> {8};
|
||||
8 -> {9};
|
||||
9 -> {10} [color=green];
|
||||
|
||||
subgraph cluster_4 {
|
||||
color=red
|
||||
11 [label="Enter class Bar" style="filled" fillcolor=red];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
12 [label="Enter init block" style="filled" fillcolor=red];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
13 [label="Enter block"];
|
||||
14 [label="Const: Int(1)"];
|
||||
15 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||
16 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||
17 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||
18 [label="Stub" style="filled" fillcolor=gray];
|
||||
19 [label="Const: Int(2)" style="filled" fillcolor=gray];
|
||||
20 [label="Variable declaration: lval y: R|kotlin/Int|" style="filled" fillcolor=gray];
|
||||
21 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
22 [label="Exit init block" style="filled" fillcolor=gray];
|
||||
}
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
23 [label="Enter function <init>" style="filled" fillcolor=gray];
|
||||
24 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=gray];
|
||||
25 [label="Exit function <init>" style="filled" fillcolor=gray];
|
||||
}
|
||||
26 [label="Exit class Bar" style="filled" fillcolor=gray];
|
||||
}
|
||||
8 -> {9} [color=green];
|
||||
9 -> {10};
|
||||
10 -> {11};
|
||||
11 -> {12} [color=green];
|
||||
11 -> {26} [style=dotted];
|
||||
11 -> {12 23} [style=dashed];
|
||||
12 -> {13};
|
||||
13 -> {14};
|
||||
|
||||
subgraph cluster_5 {
|
||||
color=red
|
||||
13 [label="Enter class Bar" style="filled" fillcolor=red];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
14 [label="Enter init block" style="filled" fillcolor=red];
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
15 [label="Enter block"];
|
||||
16 [label="Const: Int(1)"];
|
||||
17 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||
18 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||
19 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||
20 [label="Stub" style="filled" fillcolor=gray];
|
||||
21 [label="Const: Int(2)" style="filled" fillcolor=gray];
|
||||
22 [label="Variable declaration: lval y: R|kotlin/Int|" style="filled" fillcolor=gray];
|
||||
23 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
24 [label="Exit init block" style="filled" fillcolor=gray];
|
||||
}
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
25 [label="Enter function <init>" style="filled" fillcolor=gray];
|
||||
26 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=gray];
|
||||
27 [label="Exit function <init>" style="filled" fillcolor=gray];
|
||||
}
|
||||
28 [label="Exit class Bar" style="filled" fillcolor=gray];
|
||||
}
|
||||
13 -> {14} [color=green];
|
||||
13 -> {28} [style=dotted];
|
||||
13 -> {14 25} [style=dashed];
|
||||
14 -> {15};
|
||||
15 -> {16};
|
||||
16 -> {17};
|
||||
17 -> {18} [style=dotted];
|
||||
18 -> {19} [style=dotted];
|
||||
17 -> {18};
|
||||
18 -> {19};
|
||||
19 -> {20} [style=dotted];
|
||||
20 -> {21} [style=dotted];
|
||||
21 -> {22} [style=dotted];
|
||||
@@ -84,5 +89,7 @@ digraph initBlock_kt {
|
||||
23 -> {24} [style=dotted];
|
||||
24 -> {25} [style=dotted];
|
||||
25 -> {26} [style=dotted];
|
||||
26 -> {27} [style=dotted];
|
||||
27 -> {28} [style=dotted];
|
||||
|
||||
}
|
||||
|
||||
+62
-55
@@ -5,73 +5,78 @@ digraph initBlockAndInPlaceLambda_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter class B" style="filled" fillcolor=red];
|
||||
1 [label="Exit class B" style="filled" fillcolor=red];
|
||||
0 [label="Enter file initBlockAndInPlaceLambda.kt" style="filled" fillcolor=red];
|
||||
1 [label="Exit file initBlockAndInPlaceLambda.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1} [color=green];
|
||||
|
||||
subgraph cluster_1 {
|
||||
color=red
|
||||
2 [label="Enter class A" style="filled" fillcolor=red];
|
||||
3 [label="Exit class A" style="filled" fillcolor=red];
|
||||
2 [label="Enter class B" style="filled" fillcolor=red];
|
||||
3 [label="Exit class B" style="filled" fillcolor=red];
|
||||
}
|
||||
2 -> {3} [color=green];
|
||||
|
||||
subgraph cluster_2 {
|
||||
color=red
|
||||
4 [label="Enter class C" style="filled" fillcolor=red];
|
||||
subgraph cluster_3 {
|
||||
color=blue
|
||||
5 [label="Enter init block" style="filled" fillcolor=red];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
6 [label="Enter block"];
|
||||
7 [label="Access variable R|<local>/a|"];
|
||||
8 [label="Access variable R|/A.b|"];
|
||||
9 [label="Enter safe call"];
|
||||
10 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
11 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
12 [label="Enter block"];
|
||||
13 [label="Access variable R|<local>/a|"];
|
||||
14 [label="Access variable R|<local>/it|"];
|
||||
15 [label="Function call: R|/C.C|(...)" style="filled" fillcolor=yellow];
|
||||
16 [label="Exit block"];
|
||||
}
|
||||
17 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
18 [label="Postponed exit from lambda"];
|
||||
19 [label="Function call: $subj$.R|kotlin/let|<R|B|, R|C|>(...)" style="filled" fillcolor=yellow];
|
||||
20 [label="Exit safe call"];
|
||||
21 [label="Variable declaration: lval c: R|C?|"];
|
||||
22 [label="Exit block"];
|
||||
}
|
||||
23 [label="Exit init block" style="filled" fillcolor=red];
|
||||
}
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
24 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
25 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
26 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
}
|
||||
27 [label="Exit class C" style="filled" fillcolor=red];
|
||||
4 [label="Enter class A" style="filled" fillcolor=red];
|
||||
5 [label="Exit class A" style="filled" fillcolor=red];
|
||||
}
|
||||
4 -> {5} [color=green];
|
||||
4 -> {27} [style=dotted];
|
||||
4 -> {5 24} [style=dashed];
|
||||
5 -> {6};
|
||||
6 -> {7};
|
||||
|
||||
subgraph cluster_3 {
|
||||
color=red
|
||||
6 [label="Enter class C" style="filled" fillcolor=red];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
7 [label="Enter init block" style="filled" fillcolor=red];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
8 [label="Enter block"];
|
||||
9 [label="Access variable R|<local>/a|"];
|
||||
10 [label="Access variable R|/A.b|"];
|
||||
11 [label="Enter safe call"];
|
||||
12 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
13 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
14 [label="Enter block"];
|
||||
15 [label="Access variable R|<local>/a|"];
|
||||
16 [label="Access variable R|<local>/it|"];
|
||||
17 [label="Function call: R|/C.C|(...)" style="filled" fillcolor=yellow];
|
||||
18 [label="Exit block"];
|
||||
}
|
||||
19 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
20 [label="Postponed exit from lambda"];
|
||||
21 [label="Function call: $subj$.R|kotlin/let|<R|B|, R|C|>(...)" style="filled" fillcolor=yellow];
|
||||
22 [label="Exit safe call"];
|
||||
23 [label="Variable declaration: lval c: R|C?|"];
|
||||
24 [label="Exit block"];
|
||||
}
|
||||
25 [label="Exit init block" style="filled" fillcolor=red];
|
||||
}
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
26 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
27 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
28 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
}
|
||||
29 [label="Exit class C" style="filled" fillcolor=red];
|
||||
}
|
||||
6 -> {7} [color=green];
|
||||
6 -> {29} [style=dotted];
|
||||
6 -> {7 26} [style=dashed];
|
||||
7 -> {8};
|
||||
8 -> {9 20};
|
||||
8 -> {9};
|
||||
9 -> {10};
|
||||
10 -> {11 19};
|
||||
10 -> {18} [style=dotted];
|
||||
10 -> {11} [style=dashed];
|
||||
10 -> {11 22};
|
||||
11 -> {12};
|
||||
12 -> {13};
|
||||
12 -> {13 21};
|
||||
12 -> {20} [style=dotted];
|
||||
12 -> {13} [style=dashed];
|
||||
13 -> {14};
|
||||
14 -> {15};
|
||||
15 -> {16};
|
||||
@@ -82,9 +87,11 @@ digraph initBlockAndInPlaceLambda_kt {
|
||||
20 -> {21};
|
||||
21 -> {22};
|
||||
22 -> {23};
|
||||
23 -> {24} [color=green];
|
||||
23 -> {24};
|
||||
24 -> {25};
|
||||
25 -> {26};
|
||||
26 -> {27} [color=green];
|
||||
25 -> {26} [color=green];
|
||||
26 -> {27};
|
||||
27 -> {28};
|
||||
28 -> {29} [color=green];
|
||||
|
||||
}
|
||||
|
||||
+48
-39
@@ -5,69 +5,78 @@ digraph innerClassInAnonymousObject_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter property" style="filled" fillcolor=red];
|
||||
1 [label="Enter anonymous object"];
|
||||
0 [label="Enter file innerClassInAnonymousObject.kt" style="filled" fillcolor=red];
|
||||
subgraph cluster_1 {
|
||||
color=blue
|
||||
2 [label="Enter class <anonymous object>" style="filled" fillcolor=red];
|
||||
1 [label="Enter property" style="filled" fillcolor=red];
|
||||
2 [label="Enter anonymous object"];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
3 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
4 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
5 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
3 [label="Enter class <anonymous object>" style="filled" fillcolor=red];
|
||||
subgraph cluster_3 {
|
||||
color=blue
|
||||
4 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
5 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
6 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
}
|
||||
7 [label="Exit class <anonymous object>" style="filled" fillcolor=red];
|
||||
}
|
||||
6 [label="Exit class <anonymous object>" style="filled" fillcolor=red];
|
||||
8 [label="Exit anonymous object expression"];
|
||||
9 [label="Exit property" style="filled" fillcolor=red];
|
||||
}
|
||||
7 [label="Exit anonymous object expression"];
|
||||
8 [label="Exit property" style="filled" fillcolor=red];
|
||||
10 [label="Exit file innerClassInAnonymousObject.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
subgraph cluster_3 {
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
9 [label="Enter class Nested" style="filled" fillcolor=red];
|
||||
subgraph cluster_4 {
|
||||
11 [label="Enter class Nested" style="filled" fillcolor=red];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
10 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
11 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
12 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
12 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
13 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
14 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
}
|
||||
13 [label="Exit class Nested" style="filled" fillcolor=red];
|
||||
15 [label="Exit class Nested" style="filled" fillcolor=red];
|
||||
}
|
||||
subgraph cluster_5 {
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
14 [label="Enter function foo" style="filled" fillcolor=red];
|
||||
subgraph cluster_6 {
|
||||
16 [label="Enter function foo" style="filled" fillcolor=red];
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
15 [label="Enter block"];
|
||||
16 [label="Exit block"];
|
||||
17 [label="Enter block"];
|
||||
18 [label="Exit block"];
|
||||
}
|
||||
17 [label="Exit function foo" style="filled" fillcolor=red];
|
||||
19 [label="Exit function foo" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1};
|
||||
0 -> {1} [color=green];
|
||||
0 -> {10} [style=dotted];
|
||||
0 -> {1} [style=dashed];
|
||||
1 -> {2};
|
||||
1 -> {7} [style=dotted];
|
||||
1 -> {2} [style=dashed];
|
||||
2 -> {3};
|
||||
2 -> {9} [color=red];
|
||||
2 -> {6} [style=dotted];
|
||||
2 -> {8} [style=dotted];
|
||||
2 -> {3} [style=dashed];
|
||||
3 -> {4};
|
||||
3 -> {11} [color=red];
|
||||
3 -> {7} [style=dotted];
|
||||
3 -> {4} [style=dashed];
|
||||
4 -> {5};
|
||||
5 -> {6};
|
||||
6 -> {7};
|
||||
6 -> {9} [color=green];
|
||||
6 -> {9} [style=dashed];
|
||||
7 -> {8};
|
||||
9 -> {10};
|
||||
9 -> {14} [color=red];
|
||||
9 -> {13} [style=dotted];
|
||||
9 -> {10} [style=dashed];
|
||||
10 -> {11};
|
||||
7 -> {11} [color=green];
|
||||
7 -> {11} [style=dashed];
|
||||
8 -> {9};
|
||||
9 -> {10} [color=green];
|
||||
11 -> {12};
|
||||
12 -> {13} [color=green];
|
||||
13 -> {14} [color=green];
|
||||
13 -> {14} [style=dashed];
|
||||
14 -> {15};
|
||||
15 -> {16};
|
||||
11 -> {16} [color=red];
|
||||
11 -> {15} [style=dotted];
|
||||
11 -> {12} [style=dashed];
|
||||
12 -> {13};
|
||||
13 -> {14};
|
||||
14 -> {15} [color=green];
|
||||
15 -> {16} [color=green];
|
||||
15 -> {16} [style=dashed];
|
||||
16 -> {17};
|
||||
17 -> {18};
|
||||
18 -> {19};
|
||||
|
||||
}
|
||||
|
||||
+183
-176
@@ -5,188 +5,193 @@ digraph inplaceLambdaInControlFlowExpressions_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter function materialize" style="filled" fillcolor=red];
|
||||
subgraph cluster_1 {
|
||||
color=blue
|
||||
1 [label="Enter block"];
|
||||
2 [label="Const: Null(null)"];
|
||||
3 [label="Check not null: Null(null)!!" style="filled" fillcolor=yellow];
|
||||
4 [label="Stub" style="filled" fillcolor=gray];
|
||||
5 [label="Jump: ^materialize Null(null)!!" style="filled" fillcolor=gray];
|
||||
6 [label="Stub" style="filled" fillcolor=gray];
|
||||
7 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
8 [label="Exit function materialize" style="filled" fillcolor=gray];
|
||||
0 [label="Enter file inplaceLambdaInControlFlowExpressions.kt" style="filled" fillcolor=red];
|
||||
1 [label="Exit file inplaceLambdaInControlFlowExpressions.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1};
|
||||
1 -> {2};
|
||||
2 -> {3};
|
||||
3 -> {4} [style=dotted];
|
||||
4 -> {5} [style=dotted];
|
||||
5 -> {6 8} [style=dotted];
|
||||
6 -> {7} [style=dotted];
|
||||
7 -> {8} [style=dotted];
|
||||
0 -> {1} [color=green];
|
||||
|
||||
subgraph cluster_2 {
|
||||
subgraph cluster_1 {
|
||||
color=red
|
||||
9 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||
subgraph cluster_3 {
|
||||
2 [label="Enter function materialize" style="filled" fillcolor=red];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
10 [label="Enter block"];
|
||||
subgraph cluster_4 {
|
||||
3 [label="Enter block"];
|
||||
4 [label="Const: Null(null)"];
|
||||
5 [label="Check not null: Null(null)!!" style="filled" fillcolor=yellow];
|
||||
6 [label="Stub" style="filled" fillcolor=gray];
|
||||
7 [label="Jump: ^materialize Null(null)!!" style="filled" fillcolor=gray];
|
||||
8 [label="Stub" style="filled" fillcolor=gray];
|
||||
9 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
10 [label="Exit function materialize" style="filled" fillcolor=gray];
|
||||
}
|
||||
2 -> {3};
|
||||
3 -> {4};
|
||||
4 -> {5};
|
||||
5 -> {6} [style=dotted];
|
||||
6 -> {7} [style=dotted];
|
||||
7 -> {8 10} [style=dotted];
|
||||
8 -> {9} [style=dotted];
|
||||
9 -> {10} [style=dotted];
|
||||
|
||||
subgraph cluster_3 {
|
||||
color=red
|
||||
11 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
12 [label="Enter block"];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
11 [label="Enter when"];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
12 [label="Enter when branch condition "];
|
||||
13 [label="Const: Boolean(true)"];
|
||||
14 [label="Exit when branch condition"];
|
||||
}
|
||||
13 [label="Enter when"];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
15 [label="Enter when branch condition else"];
|
||||
14 [label="Enter when branch condition "];
|
||||
15 [label="Const: Boolean(true)"];
|
||||
16 [label="Exit when branch condition"];
|
||||
}
|
||||
17 [label="Enter when branch result"];
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
18 [label="Enter block"];
|
||||
19 [label="Const: String()"];
|
||||
20 [label="Exit block"];
|
||||
17 [label="Enter when branch condition else"];
|
||||
18 [label="Exit when branch condition"];
|
||||
}
|
||||
21 [label="Exit when branch result"];
|
||||
22 [label="Enter when branch result"];
|
||||
19 [label="Enter when branch result"];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
23 [label="Enter block"];
|
||||
24 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
25 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_10 {
|
||||
color=blue
|
||||
26 [label="Enter block"];
|
||||
27 [label="Function call: R|/materialize|<R|kotlin/String|>()" style="filled" fillcolor=yellow];
|
||||
28 [label="Exit block"];
|
||||
}
|
||||
29 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
30 [label="Postponed exit from lambda"];
|
||||
31 [label="Function call: R|kotlin/run|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||
32 [label="Exit block"];
|
||||
20 [label="Enter block"];
|
||||
21 [label="Const: String()"];
|
||||
22 [label="Exit block"];
|
||||
}
|
||||
33 [label="Exit when branch result"];
|
||||
34 [label="Exit when"];
|
||||
23 [label="Exit when branch result"];
|
||||
24 [label="Enter when branch result"];
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
25 [label="Enter block"];
|
||||
26 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_10 {
|
||||
color=blue
|
||||
27 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
28 [label="Enter block"];
|
||||
29 [label="Function call: R|/materialize|<R|kotlin/String|>()" style="filled" fillcolor=yellow];
|
||||
30 [label="Exit block"];
|
||||
}
|
||||
31 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
32 [label="Postponed exit from lambda"];
|
||||
33 [label="Function call: R|kotlin/run|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||
34 [label="Exit block"];
|
||||
}
|
||||
35 [label="Exit when branch result"];
|
||||
36 [label="Exit when"];
|
||||
}
|
||||
35 [label="Variable declaration: lval x: R|kotlin/String|"];
|
||||
36 [label="Exit block"];
|
||||
37 [label="Variable declaration: lval x: R|kotlin/String|"];
|
||||
38 [label="Exit block"];
|
||||
}
|
||||
37 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||
39 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||
}
|
||||
9 -> {10};
|
||||
10 -> {11};
|
||||
11 -> {12};
|
||||
12 -> {13};
|
||||
13 -> {14};
|
||||
14 -> {15 22};
|
||||
14 -> {15};
|
||||
15 -> {16};
|
||||
16 -> {17};
|
||||
16 -> {17 24};
|
||||
17 -> {18};
|
||||
18 -> {19};
|
||||
19 -> {20};
|
||||
20 -> {21};
|
||||
21 -> {34};
|
||||
21 -> {22};
|
||||
22 -> {23};
|
||||
23 -> {24};
|
||||
24 -> {25 31};
|
||||
24 -> {30} [style=dotted];
|
||||
24 -> {25} [style=dashed];
|
||||
23 -> {36};
|
||||
24 -> {25};
|
||||
25 -> {26};
|
||||
26 -> {27};
|
||||
26 -> {27 33};
|
||||
26 -> {32} [style=dotted];
|
||||
26 -> {27} [style=dashed];
|
||||
27 -> {28};
|
||||
28 -> {29};
|
||||
29 -> {30};
|
||||
30 -> {31} [color=green];
|
||||
30 -> {34} [color=red];
|
||||
30 -> {31};
|
||||
31 -> {32};
|
||||
32 -> {33};
|
||||
32 -> {33} [color=green];
|
||||
32 -> {36} [color=red];
|
||||
33 -> {34};
|
||||
34 -> {35};
|
||||
35 -> {36};
|
||||
36 -> {37};
|
||||
|
||||
subgraph cluster_11 {
|
||||
color=red
|
||||
38 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||
subgraph cluster_12 {
|
||||
color=blue
|
||||
39 [label="Enter block"];
|
||||
subgraph cluster_13 {
|
||||
color=blue
|
||||
40 [label="Try expression enter"];
|
||||
subgraph cluster_14 {
|
||||
color=blue
|
||||
41 [label="Try main block enter"];
|
||||
subgraph cluster_15 {
|
||||
color=blue
|
||||
42 [label="Enter block"];
|
||||
43 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_16 {
|
||||
color=blue
|
||||
44 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_17 {
|
||||
color=blue
|
||||
45 [label="Enter block"];
|
||||
46 [label="Function call: R|/materialize|<R|kotlin/String|>()" style="filled" fillcolor=yellow];
|
||||
47 [label="Exit block"];
|
||||
}
|
||||
48 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
49 [label="Postponed exit from lambda"];
|
||||
50 [label="Function call: R|kotlin/run|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||
51 [label="Exit block"];
|
||||
}
|
||||
52 [label="Try main block exit"];
|
||||
}
|
||||
subgraph cluster_18 {
|
||||
color=blue
|
||||
53 [label="Catch enter"];
|
||||
54 [label="Variable declaration: e: R|kotlin/Exception|"];
|
||||
subgraph cluster_19 {
|
||||
color=blue
|
||||
55 [label="Enter block"];
|
||||
56 [label="Const: String()"];
|
||||
57 [label="Exit block"];
|
||||
}
|
||||
58 [label="Catch exit"];
|
||||
}
|
||||
59 [label="Try expression exit"];
|
||||
}
|
||||
60 [label="Variable declaration: lval x: R|kotlin/String|"];
|
||||
61 [label="Exit block"];
|
||||
}
|
||||
62 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||
}
|
||||
37 -> {38};
|
||||
38 -> {39};
|
||||
39 -> {40};
|
||||
40 -> {41 53};
|
||||
|
||||
subgraph cluster_12 {
|
||||
color=red
|
||||
40 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||
subgraph cluster_13 {
|
||||
color=blue
|
||||
41 [label="Enter block"];
|
||||
subgraph cluster_14 {
|
||||
color=blue
|
||||
42 [label="Try expression enter"];
|
||||
subgraph cluster_15 {
|
||||
color=blue
|
||||
43 [label="Try main block enter"];
|
||||
subgraph cluster_16 {
|
||||
color=blue
|
||||
44 [label="Enter block"];
|
||||
45 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_17 {
|
||||
color=blue
|
||||
46 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_18 {
|
||||
color=blue
|
||||
47 [label="Enter block"];
|
||||
48 [label="Function call: R|/materialize|<R|kotlin/String|>()" style="filled" fillcolor=yellow];
|
||||
49 [label="Exit block"];
|
||||
}
|
||||
50 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
51 [label="Postponed exit from lambda"];
|
||||
52 [label="Function call: R|kotlin/run|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||
53 [label="Exit block"];
|
||||
}
|
||||
54 [label="Try main block exit"];
|
||||
}
|
||||
subgraph cluster_19 {
|
||||
color=blue
|
||||
55 [label="Catch enter"];
|
||||
56 [label="Variable declaration: e: R|kotlin/Exception|"];
|
||||
subgraph cluster_20 {
|
||||
color=blue
|
||||
57 [label="Enter block"];
|
||||
58 [label="Const: String()"];
|
||||
59 [label="Exit block"];
|
||||
}
|
||||
60 [label="Catch exit"];
|
||||
}
|
||||
61 [label="Try expression exit"];
|
||||
}
|
||||
62 [label="Variable declaration: lval x: R|kotlin/String|"];
|
||||
63 [label="Exit block"];
|
||||
}
|
||||
64 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||
}
|
||||
40 -> {41};
|
||||
41 -> {42};
|
||||
42 -> {43};
|
||||
43 -> {44 50};
|
||||
43 -> {49} [style=dotted];
|
||||
43 -> {44} [style=dashed];
|
||||
42 -> {43 55};
|
||||
43 -> {44};
|
||||
44 -> {45};
|
||||
45 -> {46};
|
||||
46 -> {47 53};
|
||||
45 -> {46 52};
|
||||
45 -> {51} [style=dotted];
|
||||
45 -> {46} [style=dashed];
|
||||
46 -> {47};
|
||||
47 -> {48};
|
||||
48 -> {49};
|
||||
49 -> {50} [color=green];
|
||||
49 -> {59} [color=red];
|
||||
50 -> {51 53};
|
||||
51 -> {52};
|
||||
52 -> {53 59};
|
||||
48 -> {49 55};
|
||||
49 -> {50};
|
||||
50 -> {51};
|
||||
51 -> {52} [color=green];
|
||||
51 -> {61} [color=red];
|
||||
52 -> {53 55};
|
||||
53 -> {54};
|
||||
54 -> {55};
|
||||
54 -> {55 61};
|
||||
55 -> {56};
|
||||
56 -> {57};
|
||||
57 -> {58};
|
||||
@@ -194,48 +199,50 @@ digraph inplaceLambdaInControlFlowExpressions_kt {
|
||||
59 -> {60};
|
||||
60 -> {61};
|
||||
61 -> {62};
|
||||
|
||||
subgraph cluster_20 {
|
||||
color=red
|
||||
63 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||
subgraph cluster_21 {
|
||||
color=blue
|
||||
64 [label="Enter block"];
|
||||
65 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_22 {
|
||||
color=blue
|
||||
66 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_23 {
|
||||
color=blue
|
||||
67 [label="Enter block"];
|
||||
68 [label="Function call: R|/materialize|<R|kotlin/String?|>()" style="filled" fillcolor=yellow];
|
||||
69 [label="Exit block"];
|
||||
}
|
||||
70 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
71 [label="Postponed exit from lambda"];
|
||||
72 [label="Function call: R|kotlin/run|<R|kotlin/String?|>(...)" style="filled" fillcolor=yellow];
|
||||
73 [label="Check not null: R|kotlin/run|<R|kotlin/String?|>(...)!!" style="filled" fillcolor=yellow];
|
||||
74 [label="Variable declaration: lval x: R|kotlin/String|"];
|
||||
75 [label="Exit block"];
|
||||
}
|
||||
76 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||
}
|
||||
62 -> {63};
|
||||
63 -> {64};
|
||||
64 -> {65};
|
||||
65 -> {66 72};
|
||||
65 -> {71} [style=dotted];
|
||||
65 -> {66} [style=dashed];
|
||||
|
||||
subgraph cluster_21 {
|
||||
color=red
|
||||
65 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||
subgraph cluster_22 {
|
||||
color=blue
|
||||
66 [label="Enter block"];
|
||||
67 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_23 {
|
||||
color=blue
|
||||
68 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_24 {
|
||||
color=blue
|
||||
69 [label="Enter block"];
|
||||
70 [label="Function call: R|/materialize|<R|kotlin/String?|>()" style="filled" fillcolor=yellow];
|
||||
71 [label="Exit block"];
|
||||
}
|
||||
72 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
73 [label="Postponed exit from lambda"];
|
||||
74 [label="Function call: R|kotlin/run|<R|kotlin/String?|>(...)" style="filled" fillcolor=yellow];
|
||||
75 [label="Check not null: R|kotlin/run|<R|kotlin/String?|>(...)!!" style="filled" fillcolor=yellow];
|
||||
76 [label="Variable declaration: lval x: R|kotlin/String|"];
|
||||
77 [label="Exit block"];
|
||||
}
|
||||
78 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||
}
|
||||
65 -> {66};
|
||||
66 -> {67};
|
||||
67 -> {68};
|
||||
67 -> {68 74};
|
||||
67 -> {73} [style=dotted];
|
||||
67 -> {68} [style=dashed];
|
||||
68 -> {69};
|
||||
69 -> {70};
|
||||
70 -> {71};
|
||||
71 -> {72} [color=green];
|
||||
71 -> {73} [color=red];
|
||||
71 -> {72};
|
||||
72 -> {73};
|
||||
73 -> {74};
|
||||
73 -> {74} [color=green];
|
||||
73 -> {75} [color=red];
|
||||
74 -> {75};
|
||||
75 -> {76};
|
||||
76 -> {77};
|
||||
77 -> {78};
|
||||
|
||||
}
|
||||
|
||||
+276
-269
@@ -5,156 +5,161 @@ digraph jumps_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||
subgraph cluster_1 {
|
||||
0 [label="Enter file jumps.kt" style="filled" fillcolor=red];
|
||||
1 [label="Exit file jumps.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1} [color=green];
|
||||
|
||||
subgraph cluster_1 {
|
||||
color=red
|
||||
2 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
1 [label="Enter block"];
|
||||
subgraph cluster_2 {
|
||||
3 [label="Enter block"];
|
||||
subgraph cluster_3 {
|
||||
color=blue
|
||||
2 [label="Enter when"];
|
||||
subgraph cluster_3 {
|
||||
color=blue
|
||||
3 [label="Enter when branch condition "];
|
||||
4 [label="Access variable R|<local>/x|"];
|
||||
5 [label="Const: Null(null)"];
|
||||
6 [label="Equality operator =="];
|
||||
7 [label="Exit when branch condition"];
|
||||
}
|
||||
4 [label="Enter when"];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
8 [label="Enter when branch condition else"];
|
||||
5 [label="Enter when branch condition "];
|
||||
6 [label="Access variable R|<local>/x|"];
|
||||
7 [label="Const: Null(null)"];
|
||||
8 [label="Equality operator =="];
|
||||
9 [label="Exit when branch condition"];
|
||||
}
|
||||
10 [label="Enter when branch result"];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
11 [label="Enter block"];
|
||||
12 [label="Access variable R|<local>/x|"];
|
||||
13 [label="Smart cast: R|<local>/x|"];
|
||||
14 [label="Exit block"];
|
||||
10 [label="Enter when branch condition else"];
|
||||
11 [label="Exit when branch condition"];
|
||||
}
|
||||
15 [label="Exit when branch result"];
|
||||
16 [label="Enter when branch result"];
|
||||
12 [label="Enter when branch result"];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
17 [label="Enter block"];
|
||||
18 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||
19 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||
20 [label="Stub" style="filled" fillcolor=gray];
|
||||
21 [label="Exit block" style="filled" fillcolor=gray];
|
||||
13 [label="Enter block"];
|
||||
14 [label="Access variable R|<local>/x|"];
|
||||
15 [label="Smart cast: R|<local>/x|"];
|
||||
16 [label="Exit block"];
|
||||
}
|
||||
22 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
23 [label="Exit when"];
|
||||
17 [label="Exit when branch result"];
|
||||
18 [label="Enter when branch result"];
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
19 [label="Enter block"];
|
||||
20 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||
21 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||
22 [label="Stub" style="filled" fillcolor=gray];
|
||||
23 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
24 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
25 [label="Exit when"];
|
||||
}
|
||||
24 [label="Variable declaration: lval y: R|kotlin/Int|"];
|
||||
25 [label="Access variable R|<local>/y|"];
|
||||
26 [label="Function call: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||
27 [label="Access variable R|<local>/x|"];
|
||||
28 [label="Smart cast: R|<local>/x|"];
|
||||
29 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||
30 [label="Exit block"];
|
||||
26 [label="Variable declaration: lval y: R|kotlin/Int|"];
|
||||
27 [label="Access variable R|<local>/y|"];
|
||||
28 [label="Function call: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||
29 [label="Access variable R|<local>/x|"];
|
||||
30 [label="Smart cast: R|<local>/x|"];
|
||||
31 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||
32 [label="Exit block"];
|
||||
}
|
||||
31 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||
33 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1};
|
||||
1 -> {2};
|
||||
2 -> {3};
|
||||
3 -> {4};
|
||||
4 -> {5};
|
||||
5 -> {6};
|
||||
6 -> {7};
|
||||
7 -> {8 16};
|
||||
7 -> {8};
|
||||
8 -> {9};
|
||||
9 -> {10};
|
||||
9 -> {10 18};
|
||||
10 -> {11};
|
||||
11 -> {12};
|
||||
12 -> {13};
|
||||
13 -> {14};
|
||||
14 -> {15};
|
||||
15 -> {23};
|
||||
15 -> {16};
|
||||
16 -> {17};
|
||||
17 -> {18};
|
||||
17 -> {25};
|
||||
18 -> {19};
|
||||
19 -> {20} [style=dotted];
|
||||
20 -> {21} [style=dotted];
|
||||
19 -> {20};
|
||||
20 -> {21};
|
||||
21 -> {22} [style=dotted];
|
||||
22 -> {23} [style=dotted];
|
||||
23 -> {24};
|
||||
24 -> {25};
|
||||
23 -> {24} [style=dotted];
|
||||
24 -> {25} [style=dotted];
|
||||
25 -> {26};
|
||||
26 -> {27};
|
||||
27 -> {28};
|
||||
28 -> {29};
|
||||
29 -> {30};
|
||||
30 -> {31};
|
||||
31 -> {32};
|
||||
32 -> {33};
|
||||
|
||||
subgraph cluster_7 {
|
||||
subgraph cluster_8 {
|
||||
color=red
|
||||
32 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||
subgraph cluster_8 {
|
||||
34 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
33 [label="Enter block"];
|
||||
subgraph cluster_9 {
|
||||
35 [label="Enter block"];
|
||||
subgraph cluster_10 {
|
||||
color=blue
|
||||
34 [label="Enter when"];
|
||||
subgraph cluster_10 {
|
||||
color=blue
|
||||
35 [label="Enter when branch condition "];
|
||||
36 [label="Access variable R|<local>/x|"];
|
||||
37 [label="Const: Null(null)"];
|
||||
38 [label="Equality operator =="];
|
||||
39 [label="Exit when branch condition"];
|
||||
}
|
||||
36 [label="Enter when"];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
40 [label="Enter when branch condition else"];
|
||||
37 [label="Enter when branch condition "];
|
||||
38 [label="Access variable R|<local>/x|"];
|
||||
39 [label="Const: Null(null)"];
|
||||
40 [label="Equality operator =="];
|
||||
41 [label="Exit when branch condition"];
|
||||
}
|
||||
42 [label="Enter when branch result"];
|
||||
subgraph cluster_12 {
|
||||
color=blue
|
||||
43 [label="Enter block"];
|
||||
44 [label="Access variable R|<local>/x|"];
|
||||
45 [label="Smart cast: R|<local>/x|"];
|
||||
46 [label="Exit block"];
|
||||
42 [label="Enter when branch condition else"];
|
||||
43 [label="Exit when branch condition"];
|
||||
}
|
||||
47 [label="Exit when branch result"];
|
||||
48 [label="Enter when branch result"];
|
||||
44 [label="Enter when branch result"];
|
||||
subgraph cluster_13 {
|
||||
color=blue
|
||||
49 [label="Enter block"];
|
||||
50 [label="Access variable R|<local>/x|"];
|
||||
51 [label="Smart cast: R|<local>/x|"];
|
||||
52 [label="Exit block"];
|
||||
45 [label="Enter block"];
|
||||
46 [label="Access variable R|<local>/x|"];
|
||||
47 [label="Smart cast: R|<local>/x|"];
|
||||
48 [label="Exit block"];
|
||||
}
|
||||
53 [label="Exit when branch result"];
|
||||
54 [label="Exit when"];
|
||||
49 [label="Exit when branch result"];
|
||||
50 [label="Enter when branch result"];
|
||||
subgraph cluster_14 {
|
||||
color=blue
|
||||
51 [label="Enter block"];
|
||||
52 [label="Access variable R|<local>/x|"];
|
||||
53 [label="Smart cast: R|<local>/x|"];
|
||||
54 [label="Exit block"];
|
||||
}
|
||||
55 [label="Exit when branch result"];
|
||||
56 [label="Exit when"];
|
||||
}
|
||||
55 [label="Variable declaration: lval y: R|kotlin/Int?|"];
|
||||
56 [label="Access variable R|<local>/y|"];
|
||||
57 [label="Function call: R|<local>/y|.R|kotlin/Int.inc<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#|()" style="filled" fillcolor=yellow];
|
||||
58 [label="Exit block"];
|
||||
57 [label="Variable declaration: lval y: R|kotlin/Int?|"];
|
||||
58 [label="Access variable R|<local>/y|"];
|
||||
59 [label="Function call: R|<local>/y|.R|kotlin/Int.inc<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#|()" style="filled" fillcolor=yellow];
|
||||
60 [label="Exit block"];
|
||||
}
|
||||
59 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||
61 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||
}
|
||||
32 -> {33};
|
||||
33 -> {34};
|
||||
34 -> {35};
|
||||
35 -> {36};
|
||||
36 -> {37};
|
||||
37 -> {38};
|
||||
38 -> {39};
|
||||
39 -> {40 48};
|
||||
39 -> {40};
|
||||
40 -> {41};
|
||||
41 -> {42};
|
||||
41 -> {42 50};
|
||||
42 -> {43};
|
||||
43 -> {44};
|
||||
44 -> {45};
|
||||
45 -> {46};
|
||||
46 -> {47};
|
||||
47 -> {54};
|
||||
47 -> {48};
|
||||
48 -> {49};
|
||||
49 -> {50};
|
||||
49 -> {56};
|
||||
50 -> {51};
|
||||
51 -> {52};
|
||||
52 -> {53};
|
||||
@@ -164,260 +169,262 @@ digraph jumps_kt {
|
||||
56 -> {57};
|
||||
57 -> {58};
|
||||
58 -> {59};
|
||||
59 -> {60};
|
||||
60 -> {61};
|
||||
|
||||
subgraph cluster_14 {
|
||||
subgraph cluster_15 {
|
||||
color=red
|
||||
60 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||
subgraph cluster_15 {
|
||||
62 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||
subgraph cluster_16 {
|
||||
color=blue
|
||||
61 [label="Enter block"];
|
||||
subgraph cluster_16 {
|
||||
63 [label="Enter block"];
|
||||
subgraph cluster_17 {
|
||||
color=blue
|
||||
62 [label="Enter while loop"];
|
||||
subgraph cluster_17 {
|
||||
color=blue
|
||||
63 [label="Enter loop condition"];
|
||||
64 [label="Const: Boolean(true)"];
|
||||
65 [label="Exit loop condition"];
|
||||
}
|
||||
64 [label="Enter while loop"];
|
||||
subgraph cluster_18 {
|
||||
color=blue
|
||||
66 [label="Enter loop block"];
|
||||
subgraph cluster_19 {
|
||||
color=blue
|
||||
67 [label="Enter block"];
|
||||
68 [label="Access variable R|<local>/x|"];
|
||||
69 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
|
||||
70 [label="Jump: break@@@[Boolean(true)] "];
|
||||
71 [label="Stub" style="filled" fillcolor=gray];
|
||||
72 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
73 [label="Exit loop block" style="filled" fillcolor=gray];
|
||||
65 [label="Enter loop condition"];
|
||||
66 [label="Const: Boolean(true)"];
|
||||
67 [label="Exit loop condition"];
|
||||
}
|
||||
74 [label="Exit while loop"];
|
||||
subgraph cluster_19 {
|
||||
color=blue
|
||||
68 [label="Enter loop block"];
|
||||
subgraph cluster_20 {
|
||||
color=blue
|
||||
69 [label="Enter block"];
|
||||
70 [label="Access variable R|<local>/x|"];
|
||||
71 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
|
||||
72 [label="Jump: break@@@[Boolean(true)] "];
|
||||
73 [label="Stub" style="filled" fillcolor=gray];
|
||||
74 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
75 [label="Exit loop block" style="filled" fillcolor=gray];
|
||||
}
|
||||
76 [label="Exit while loop"];
|
||||
}
|
||||
75 [label="Access variable R|<local>/x|"];
|
||||
76 [label="Smart cast: R|<local>/x|"];
|
||||
77 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||
78 [label="Exit block"];
|
||||
77 [label="Access variable R|<local>/x|"];
|
||||
78 [label="Smart cast: R|<local>/x|"];
|
||||
79 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||
80 [label="Exit block"];
|
||||
}
|
||||
79 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||
81 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||
}
|
||||
60 -> {61};
|
||||
61 -> {62};
|
||||
62 -> {63};
|
||||
63 -> {64};
|
||||
64 -> {65};
|
||||
65 -> {66};
|
||||
65 -> {74} [style=dotted];
|
||||
66 -> {67};
|
||||
67 -> {68};
|
||||
67 -> {76} [style=dotted];
|
||||
68 -> {69};
|
||||
69 -> {70};
|
||||
70 -> {74};
|
||||
70 -> {71} [style=dotted];
|
||||
71 -> {72} [style=dotted];
|
||||
70 -> {71};
|
||||
71 -> {72};
|
||||
72 -> {76};
|
||||
72 -> {73} [style=dotted];
|
||||
73 -> {63} [color=green style=dotted];
|
||||
74 -> {75};
|
||||
75 -> {76};
|
||||
73 -> {74} [style=dotted];
|
||||
74 -> {75} [style=dotted];
|
||||
75 -> {65} [color=green style=dotted];
|
||||
76 -> {77};
|
||||
77 -> {78};
|
||||
78 -> {79};
|
||||
|
||||
subgraph cluster_20 {
|
||||
color=red
|
||||
80 [label="Enter function test_4" style="filled" fillcolor=red];
|
||||
subgraph cluster_21 {
|
||||
color=blue
|
||||
81 [label="Enter block"];
|
||||
subgraph cluster_22 {
|
||||
color=blue
|
||||
82 [label="Enter do-while loop"];
|
||||
subgraph cluster_23 {
|
||||
color=blue
|
||||
83 [label="Enter loop block"];
|
||||
subgraph cluster_24 {
|
||||
color=blue
|
||||
84 [label="Enter block"];
|
||||
85 [label="Access variable R|<local>/x|"];
|
||||
86 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
|
||||
87 [label="Jump: break@@@[Boolean(true)] "];
|
||||
88 [label="Stub" style="filled" fillcolor=gray];
|
||||
89 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
90 [label="Exit loop block" style="filled" fillcolor=gray];
|
||||
}
|
||||
subgraph cluster_25 {
|
||||
color=blue
|
||||
91 [label="Enter loop condition" style="filled" fillcolor=gray];
|
||||
92 [label="Const: Boolean(true)" style="filled" fillcolor=gray];
|
||||
93 [label="Exit loop condition" style="filled" fillcolor=gray];
|
||||
}
|
||||
94 [label="Exit do-while loop"];
|
||||
}
|
||||
95 [label="Access variable R|<local>/x|"];
|
||||
96 [label="Smart cast: R|<local>/x|"];
|
||||
97 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||
98 [label="Exit block"];
|
||||
}
|
||||
99 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||
}
|
||||
79 -> {80};
|
||||
80 -> {81};
|
||||
81 -> {82};
|
||||
|
||||
subgraph cluster_21 {
|
||||
color=red
|
||||
82 [label="Enter function test_4" style="filled" fillcolor=red];
|
||||
subgraph cluster_22 {
|
||||
color=blue
|
||||
83 [label="Enter block"];
|
||||
subgraph cluster_23 {
|
||||
color=blue
|
||||
84 [label="Enter do-while loop"];
|
||||
subgraph cluster_24 {
|
||||
color=blue
|
||||
85 [label="Enter loop block"];
|
||||
subgraph cluster_25 {
|
||||
color=blue
|
||||
86 [label="Enter block"];
|
||||
87 [label="Access variable R|<local>/x|"];
|
||||
88 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
|
||||
89 [label="Jump: break@@@[Boolean(true)] "];
|
||||
90 [label="Stub" style="filled" fillcolor=gray];
|
||||
91 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
92 [label="Exit loop block" style="filled" fillcolor=gray];
|
||||
}
|
||||
subgraph cluster_26 {
|
||||
color=blue
|
||||
93 [label="Enter loop condition" style="filled" fillcolor=gray];
|
||||
94 [label="Const: Boolean(true)" style="filled" fillcolor=gray];
|
||||
95 [label="Exit loop condition" style="filled" fillcolor=gray];
|
||||
}
|
||||
96 [label="Exit do-while loop"];
|
||||
}
|
||||
97 [label="Access variable R|<local>/x|"];
|
||||
98 [label="Smart cast: R|<local>/x|"];
|
||||
99 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||
100 [label="Exit block"];
|
||||
}
|
||||
101 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||
}
|
||||
82 -> {83};
|
||||
83 -> {84};
|
||||
84 -> {85};
|
||||
85 -> {86};
|
||||
86 -> {87};
|
||||
87 -> {94};
|
||||
87 -> {88} [style=dotted];
|
||||
88 -> {89} [style=dotted];
|
||||
87 -> {88};
|
||||
88 -> {89};
|
||||
89 -> {96};
|
||||
89 -> {90} [style=dotted];
|
||||
90 -> {91} [style=dotted];
|
||||
91 -> {92} [style=dotted];
|
||||
92 -> {93} [style=dotted];
|
||||
93 -> {83} [color=green style=dotted];
|
||||
93 -> {94} [style=dotted];
|
||||
94 -> {95};
|
||||
95 -> {96};
|
||||
94 -> {95} [style=dotted];
|
||||
95 -> {85} [color=green style=dotted];
|
||||
95 -> {96} [style=dotted];
|
||||
96 -> {97};
|
||||
97 -> {98};
|
||||
98 -> {99};
|
||||
99 -> {100};
|
||||
100 -> {101};
|
||||
|
||||
subgraph cluster_26 {
|
||||
subgraph cluster_27 {
|
||||
color=red
|
||||
100 [label="Enter function test_5" style="filled" fillcolor=red];
|
||||
subgraph cluster_27 {
|
||||
102 [label="Enter function test_5" style="filled" fillcolor=red];
|
||||
subgraph cluster_28 {
|
||||
color=blue
|
||||
101 [label="Enter block"];
|
||||
subgraph cluster_28 {
|
||||
103 [label="Enter block"];
|
||||
subgraph cluster_29 {
|
||||
color=blue
|
||||
102 [label="Enter while loop"];
|
||||
subgraph cluster_29 {
|
||||
color=blue
|
||||
103 [label="Enter loop condition"];
|
||||
104 [label="Access variable R|<local>/b|"];
|
||||
105 [label="Exit loop condition"];
|
||||
}
|
||||
104 [label="Enter while loop"];
|
||||
subgraph cluster_30 {
|
||||
color=blue
|
||||
106 [label="Enter loop block"];
|
||||
subgraph cluster_31 {
|
||||
105 [label="Enter loop condition"];
|
||||
106 [label="Access variable R|<local>/b|"];
|
||||
107 [label="Exit loop condition"];
|
||||
}
|
||||
subgraph cluster_31 {
|
||||
color=blue
|
||||
108 [label="Enter loop block"];
|
||||
subgraph cluster_32 {
|
||||
color=blue
|
||||
107 [label="Enter block"];
|
||||
subgraph cluster_32 {
|
||||
109 [label="Enter block"];
|
||||
subgraph cluster_33 {
|
||||
color=blue
|
||||
108 [label="Enter when"];
|
||||
subgraph cluster_33 {
|
||||
color=blue
|
||||
109 [label="Enter when branch condition "];
|
||||
110 [label="Access variable R|<local>/b|"];
|
||||
111 [label="Exit when branch condition"];
|
||||
}
|
||||
112 [label="Synthetic else branch"];
|
||||
113 [label="Enter when branch result"];
|
||||
110 [label="Enter when"];
|
||||
subgraph cluster_34 {
|
||||
color=blue
|
||||
114 [label="Enter block"];
|
||||
115 [label="Jump: continue@@@[R|<local>/b|] "];
|
||||
116 [label="Stub" style="filled" fillcolor=gray];
|
||||
117 [label="Exit block" style="filled" fillcolor=gray];
|
||||
111 [label="Enter when branch condition "];
|
||||
112 [label="Access variable R|<local>/b|"];
|
||||
113 [label="Exit when branch condition"];
|
||||
}
|
||||
118 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
119 [label="Exit when"];
|
||||
114 [label="Synthetic else branch"];
|
||||
115 [label="Enter when branch result"];
|
||||
subgraph cluster_35 {
|
||||
color=blue
|
||||
116 [label="Enter block"];
|
||||
117 [label="Jump: continue@@@[R|<local>/b|] "];
|
||||
118 [label="Stub" style="filled" fillcolor=gray];
|
||||
119 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
120 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
121 [label="Exit when"];
|
||||
}
|
||||
120 [label="Exit block"];
|
||||
122 [label="Exit block"];
|
||||
}
|
||||
121 [label="Exit loop block"];
|
||||
123 [label="Exit loop block"];
|
||||
}
|
||||
122 [label="Exit while loop"];
|
||||
124 [label="Exit while loop"];
|
||||
}
|
||||
123 [label="Exit block"];
|
||||
125 [label="Exit block"];
|
||||
}
|
||||
124 [label="Exit function test_5" style="filled" fillcolor=red];
|
||||
126 [label="Exit function test_5" style="filled" fillcolor=red];
|
||||
}
|
||||
100 -> {101};
|
||||
101 -> {102};
|
||||
102 -> {103};
|
||||
103 -> {104};
|
||||
104 -> {105};
|
||||
105 -> {106 122};
|
||||
105 -> {106};
|
||||
106 -> {107};
|
||||
107 -> {108};
|
||||
107 -> {108 124};
|
||||
108 -> {109};
|
||||
109 -> {110};
|
||||
110 -> {111};
|
||||
111 -> {112 113};
|
||||
112 -> {119};
|
||||
113 -> {114};
|
||||
114 -> {115};
|
||||
115 -> {103} [color=green style=dashed];
|
||||
115 -> {116} [style=dotted];
|
||||
116 -> {117} [style=dotted];
|
||||
111 -> {112};
|
||||
112 -> {113};
|
||||
113 -> {114 115};
|
||||
114 -> {121};
|
||||
115 -> {116};
|
||||
116 -> {117};
|
||||
117 -> {105} [color=green style=dashed];
|
||||
117 -> {118} [style=dotted];
|
||||
118 -> {119} [style=dotted];
|
||||
119 -> {120};
|
||||
120 -> {121};
|
||||
121 -> {103} [color=green style=dashed];
|
||||
119 -> {120} [style=dotted];
|
||||
120 -> {121} [style=dotted];
|
||||
121 -> {122};
|
||||
122 -> {123};
|
||||
123 -> {124};
|
||||
|
||||
subgraph cluster_35 {
|
||||
color=red
|
||||
125 [label="Enter function run" style="filled" fillcolor=red];
|
||||
subgraph cluster_36 {
|
||||
color=blue
|
||||
126 [label="Enter block"];
|
||||
127 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||
128 [label="Exit block"];
|
||||
}
|
||||
129 [label="Exit function run" style="filled" fillcolor=red];
|
||||
}
|
||||
123 -> {105} [color=green style=dashed];
|
||||
124 -> {125};
|
||||
125 -> {126};
|
||||
126 -> {127};
|
||||
|
||||
subgraph cluster_36 {
|
||||
color=red
|
||||
127 [label="Enter function run" style="filled" fillcolor=red];
|
||||
subgraph cluster_37 {
|
||||
color=blue
|
||||
128 [label="Enter block"];
|
||||
129 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||
130 [label="Exit block"];
|
||||
}
|
||||
131 [label="Exit function run" style="filled" fillcolor=red];
|
||||
}
|
||||
127 -> {128};
|
||||
128 -> {129};
|
||||
|
||||
subgraph cluster_37 {
|
||||
color=red
|
||||
130 [label="Enter function test_6" style="filled" fillcolor=red];
|
||||
subgraph cluster_38 {
|
||||
color=blue
|
||||
131 [label="Enter block"];
|
||||
132 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_39 {
|
||||
color=blue
|
||||
133 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_40 {
|
||||
color=blue
|
||||
134 [label="Enter block"];
|
||||
135 [label="Jump: ^@run Unit"];
|
||||
136 [label="Stub" style="filled" fillcolor=gray];
|
||||
137 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
138 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
139 [label="Postponed exit from lambda"];
|
||||
140 [label="Function call: R|/run|(...)" style="filled" fillcolor=yellow];
|
||||
141 [label="Exit block"];
|
||||
}
|
||||
142 [label="Exit function test_6" style="filled" fillcolor=red];
|
||||
}
|
||||
129 -> {130};
|
||||
130 -> {131};
|
||||
131 -> {132};
|
||||
132 -> {133 139 140};
|
||||
132 -> {133} [style=dashed];
|
||||
|
||||
subgraph cluster_38 {
|
||||
color=red
|
||||
132 [label="Enter function test_6" style="filled" fillcolor=red];
|
||||
subgraph cluster_39 {
|
||||
color=blue
|
||||
133 [label="Enter block"];
|
||||
134 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_40 {
|
||||
color=blue
|
||||
135 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_41 {
|
||||
color=blue
|
||||
136 [label="Enter block"];
|
||||
137 [label="Jump: ^@run Unit"];
|
||||
138 [label="Stub" style="filled" fillcolor=gray];
|
||||
139 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
140 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
141 [label="Postponed exit from lambda"];
|
||||
142 [label="Function call: R|/run|(...)" style="filled" fillcolor=yellow];
|
||||
143 [label="Exit block"];
|
||||
}
|
||||
144 [label="Exit function test_6" style="filled" fillcolor=red];
|
||||
}
|
||||
132 -> {133};
|
||||
133 -> {134};
|
||||
134 -> {135};
|
||||
135 -> {138};
|
||||
135 -> {136} [style=dotted];
|
||||
136 -> {137} [style=dotted];
|
||||
134 -> {135 141 142};
|
||||
134 -> {135} [style=dashed];
|
||||
135 -> {136};
|
||||
136 -> {137};
|
||||
137 -> {140};
|
||||
137 -> {138} [style=dotted];
|
||||
138 -> {139};
|
||||
139 -> {140};
|
||||
139 -> {132} [color=green style=dashed];
|
||||
138 -> {139} [style=dotted];
|
||||
139 -> {140} [style=dotted];
|
||||
140 -> {141};
|
||||
141 -> {142};
|
||||
141 -> {134} [color=green style=dashed];
|
||||
142 -> {143};
|
||||
143 -> {144};
|
||||
|
||||
}
|
||||
|
||||
+64
-55
@@ -5,92 +5,101 @@ digraph lambdaAsReturnOfLambda_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter property" style="filled" fillcolor=red];
|
||||
1 [label="Postponed enter to lambda"];
|
||||
0 [label="Enter file lambdaAsReturnOfLambda.kt" style="filled" fillcolor=red];
|
||||
subgraph cluster_1 {
|
||||
color=blue
|
||||
2 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
1 [label="Enter property" style="filled" fillcolor=red];
|
||||
2 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
3 [label="Enter block"];
|
||||
4 [label="Exit anonymous function expression"];
|
||||
3 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_3 {
|
||||
color=blue
|
||||
5 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
4 [label="Enter block"];
|
||||
5 [label="Exit anonymous function expression"];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
6 [label="Enter block"];
|
||||
7 [label="Access variable R|<local>/foo|"];
|
||||
8 [label="Function call: R|/bar|(...)" style="filled" fillcolor=yellow];
|
||||
9 [label="Exit block"];
|
||||
6 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
7 [label="Enter block"];
|
||||
8 [label="Access variable R|<local>/foo|"];
|
||||
9 [label="Function call: R|/bar|(...)" style="filled" fillcolor=yellow];
|
||||
10 [label="Exit block"];
|
||||
}
|
||||
11 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
10 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
11 [label="Jump: ^@run lambda@fun <anonymous>(foo: R|kotlin/String|): R|kotlin/Unit| <inline=Unknown> {
|
||||
12 [label="Jump: ^@run lambda@fun <anonymous>(foo: R|kotlin/String|): R|kotlin/Unit| <inline=Unknown> {
|
||||
R|/bar|(R|<local>/foo|)
|
||||
}
|
||||
"];
|
||||
12 [label="Stub" style="filled" fillcolor=gray];
|
||||
13 [label="Exit block" style="filled" fillcolor=gray];
|
||||
13 [label="Stub" style="filled" fillcolor=gray];
|
||||
14 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
15 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
14 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
16 [label="Postponed exit from lambda"];
|
||||
17 [label="Function call: R|/run|<R|(kotlin/String) -> kotlin/Unit|>(...)" style="filled" fillcolor=yellow];
|
||||
18 [label="Exit property" style="filled" fillcolor=red];
|
||||
}
|
||||
15 [label="Postponed exit from lambda"];
|
||||
16 [label="Function call: R|/run|<R|(kotlin/String) -> kotlin/Unit|>(...)" style="filled" fillcolor=yellow];
|
||||
17 [label="Exit property" style="filled" fillcolor=red];
|
||||
19 [label="Exit file lambdaAsReturnOfLambda.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1};
|
||||
1 -> {2 15 16};
|
||||
1 -> {2} [style=dashed];
|
||||
2 -> {3};
|
||||
0 -> {1} [color=green];
|
||||
0 -> {19} [style=dotted];
|
||||
0 -> {1} [style=dashed];
|
||||
1 -> {2};
|
||||
2 -> {3 16 17};
|
||||
2 -> {3} [style=dashed];
|
||||
3 -> {4};
|
||||
4 -> {5 11};
|
||||
4 -> {5} [style=dashed];
|
||||
5 -> {6};
|
||||
4 -> {5};
|
||||
5 -> {6 12};
|
||||
5 -> {6} [style=dashed];
|
||||
6 -> {7};
|
||||
7 -> {8};
|
||||
8 -> {9};
|
||||
9 -> {10};
|
||||
11 -> {14};
|
||||
11 -> {12} [style=dotted];
|
||||
10 -> {11};
|
||||
12 -> {15};
|
||||
12 -> {13} [style=dotted];
|
||||
13 -> {14} [style=dotted];
|
||||
15 -> {16};
|
||||
14 -> {15} [style=dotted];
|
||||
16 -> {17};
|
||||
17 -> {18};
|
||||
18 -> {19} [color=green];
|
||||
|
||||
subgraph cluster_5 {
|
||||
subgraph cluster_6 {
|
||||
color=red
|
||||
18 [label="Enter function bar" style="filled" fillcolor=red];
|
||||
subgraph cluster_6 {
|
||||
20 [label="Enter function bar" style="filled" fillcolor=red];
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
19 [label="Enter block"];
|
||||
20 [label="Exit block"];
|
||||
21 [label="Enter block"];
|
||||
22 [label="Exit block"];
|
||||
}
|
||||
21 [label="Exit function bar" style="filled" fillcolor=red];
|
||||
23 [label="Exit function bar" style="filled" fillcolor=red];
|
||||
}
|
||||
18 -> {19};
|
||||
19 -> {20};
|
||||
20 -> {21};
|
||||
|
||||
subgraph cluster_7 {
|
||||
color=red
|
||||
22 [label="Enter function run" style="filled" fillcolor=red];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
23 [label="Enter block"];
|
||||
24 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|R|>|()" style="filled" fillcolor=yellow];
|
||||
25 [label="Jump: ^run R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|R|>|()"];
|
||||
26 [label="Stub" style="filled" fillcolor=gray];
|
||||
27 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
28 [label="Exit function run" style="filled" fillcolor=red];
|
||||
}
|
||||
21 -> {22};
|
||||
22 -> {23};
|
||||
23 -> {24};
|
||||
|
||||
subgraph cluster_8 {
|
||||
color=red
|
||||
24 [label="Enter function run" style="filled" fillcolor=red];
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
25 [label="Enter block"];
|
||||
26 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|R|>|()" style="filled" fillcolor=yellow];
|
||||
27 [label="Jump: ^run R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|R|>|()"];
|
||||
28 [label="Stub" style="filled" fillcolor=gray];
|
||||
29 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
30 [label="Exit function run" style="filled" fillcolor=red];
|
||||
}
|
||||
24 -> {25};
|
||||
25 -> {28};
|
||||
25 -> {26} [style=dotted];
|
||||
26 -> {27} [style=dotted];
|
||||
25 -> {26};
|
||||
26 -> {27};
|
||||
27 -> {30};
|
||||
27 -> {28} [style=dotted];
|
||||
28 -> {29} [style=dotted];
|
||||
29 -> {30} [style=dotted];
|
||||
|
||||
}
|
||||
|
||||
+77
-70
@@ -5,109 +5,116 @@ digraph lambdaReturningObject_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter class Out" style="filled" fillcolor=red];
|
||||
1 [label="Exit class Out" style="filled" fillcolor=red];
|
||||
0 [label="Enter file lambdaReturningObject.kt" style="filled" fillcolor=red];
|
||||
1 [label="Exit file lambdaReturningObject.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1} [color=green];
|
||||
|
||||
subgraph cluster_1 {
|
||||
color=red
|
||||
2 [label="Enter function bar" style="filled" fillcolor=red];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
3 [label="Enter block"];
|
||||
4 [label="Exit block"];
|
||||
}
|
||||
5 [label="Exit function bar" style="filled" fillcolor=red];
|
||||
2 [label="Enter class Out" style="filled" fillcolor=red];
|
||||
3 [label="Exit class Out" style="filled" fillcolor=red];
|
||||
}
|
||||
2 -> {3};
|
||||
3 -> {4};
|
||||
4 -> {5};
|
||||
2 -> {3} [color=green];
|
||||
|
||||
subgraph cluster_3 {
|
||||
subgraph cluster_2 {
|
||||
color=red
|
||||
6 [label="Enter class IrTypeArgument" style="filled" fillcolor=red];
|
||||
7 [label="Exit class IrTypeArgument" style="filled" fillcolor=red];
|
||||
4 [label="Enter function bar" style="filled" fillcolor=red];
|
||||
subgraph cluster_3 {
|
||||
color=blue
|
||||
5 [label="Enter block"];
|
||||
6 [label="Exit block"];
|
||||
}
|
||||
7 [label="Exit function bar" style="filled" fillcolor=red];
|
||||
}
|
||||
6 -> {7} [color=green];
|
||||
4 -> {5};
|
||||
5 -> {6};
|
||||
6 -> {7};
|
||||
|
||||
subgraph cluster_4 {
|
||||
color=red
|
||||
8 [label="Enter class IrStarProjectionImpl" style="filled" fillcolor=red];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
9 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
10 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
11 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
}
|
||||
12 [label="Exit class IrStarProjectionImpl" style="filled" fillcolor=red];
|
||||
8 [label="Enter class IrTypeArgument" style="filled" fillcolor=red];
|
||||
9 [label="Exit class IrTypeArgument" style="filled" fillcolor=red];
|
||||
}
|
||||
8 -> {9} [color=green];
|
||||
8 -> {12} [style=dotted];
|
||||
8 -> {9} [style=dashed];
|
||||
9 -> {10};
|
||||
10 -> {11};
|
||||
11 -> {12} [color=green];
|
||||
|
||||
subgraph cluster_6 {
|
||||
subgraph cluster_5 {
|
||||
color=red
|
||||
13 [label="Enter function MyOut" style="filled" fillcolor=red];
|
||||
subgraph cluster_7 {
|
||||
10 [label="Enter class IrStarProjectionImpl" style="filled" fillcolor=red];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
14 [label="Enter block"];
|
||||
15 [label="Function call: R|kotlin/TODO|()" style="filled" fillcolor=yellow];
|
||||
16 [label="Stub" style="filled" fillcolor=gray];
|
||||
17 [label="Jump: ^MyOut R|kotlin/TODO|()" style="filled" fillcolor=gray];
|
||||
11 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
12 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
13 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
}
|
||||
14 [label="Exit class IrStarProjectionImpl" style="filled" fillcolor=red];
|
||||
}
|
||||
10 -> {11} [color=green];
|
||||
10 -> {14} [style=dotted];
|
||||
10 -> {11} [style=dashed];
|
||||
11 -> {12};
|
||||
12 -> {13};
|
||||
13 -> {14} [color=green];
|
||||
|
||||
subgraph cluster_7 {
|
||||
color=red
|
||||
15 [label="Enter function MyOut" style="filled" fillcolor=red];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
16 [label="Enter block"];
|
||||
17 [label="Function call: R|kotlin/TODO|()" style="filled" fillcolor=yellow];
|
||||
18 [label="Stub" style="filled" fillcolor=gray];
|
||||
19 [label="Exit block" style="filled" fillcolor=gray];
|
||||
19 [label="Jump: ^MyOut R|kotlin/TODO|()" style="filled" fillcolor=gray];
|
||||
20 [label="Stub" style="filled" fillcolor=gray];
|
||||
21 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
20 [label="Exit function MyOut" style="filled" fillcolor=gray];
|
||||
22 [label="Exit function MyOut" style="filled" fillcolor=gray];
|
||||
}
|
||||
13 -> {14};
|
||||
14 -> {15};
|
||||
15 -> {16} [style=dotted];
|
||||
16 -> {17} [style=dotted];
|
||||
17 -> {18 20} [style=dotted];
|
||||
15 -> {16};
|
||||
16 -> {17};
|
||||
17 -> {18} [style=dotted];
|
||||
18 -> {19} [style=dotted];
|
||||
19 -> {20} [style=dotted];
|
||||
19 -> {20 22} [style=dotted];
|
||||
20 -> {21} [style=dotted];
|
||||
21 -> {22} [style=dotted];
|
||||
|
||||
subgraph cluster_8 {
|
||||
subgraph cluster_9 {
|
||||
color=red
|
||||
21 [label="Enter function foo" style="filled" fillcolor=red];
|
||||
subgraph cluster_9 {
|
||||
23 [label="Enter function foo" style="filled" fillcolor=red];
|
||||
subgraph cluster_10 {
|
||||
color=blue
|
||||
22 [label="Enter block"];
|
||||
23 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_10 {
|
||||
24 [label="Enter block"];
|
||||
25 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
24 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_11 {
|
||||
26 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_12 {
|
||||
color=blue
|
||||
25 [label="Enter block"];
|
||||
26 [label="Access qualifier /IrStarProjectionImpl"];
|
||||
27 [label="Exit block"];
|
||||
27 [label="Enter block"];
|
||||
28 [label="Access qualifier /IrStarProjectionImpl"];
|
||||
29 [label="Exit block"];
|
||||
}
|
||||
28 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
30 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
29 [label="Postponed exit from lambda"];
|
||||
30 [label="Function call: R|/MyOut|<R|IrStarProjectionImpl|>(...)" style="filled" fillcolor=yellow];
|
||||
31 [label="Function call: R|/bar|(...)" style="filled" fillcolor=yellow];
|
||||
32 [label="Exit block"];
|
||||
31 [label="Postponed exit from lambda"];
|
||||
32 [label="Function call: R|/MyOut|<R|IrStarProjectionImpl|>(...)" style="filled" fillcolor=yellow];
|
||||
33 [label="Function call: R|/bar|(...)" style="filled" fillcolor=yellow];
|
||||
34 [label="Exit block"];
|
||||
}
|
||||
33 [label="Exit function foo" style="filled" fillcolor=red];
|
||||
35 [label="Exit function foo" style="filled" fillcolor=red];
|
||||
}
|
||||
21 -> {22};
|
||||
22 -> {23};
|
||||
23 -> {24 29 30};
|
||||
23 -> {24} [style=dashed];
|
||||
23 -> {24};
|
||||
24 -> {25};
|
||||
25 -> {26};
|
||||
25 -> {26 31 32};
|
||||
25 -> {26} [style=dashed];
|
||||
26 -> {27};
|
||||
27 -> {28};
|
||||
29 -> {30} [color=green];
|
||||
29 -> {31} [color=red];
|
||||
30 -> {31};
|
||||
31 -> {32};
|
||||
28 -> {29};
|
||||
29 -> {30};
|
||||
31 -> {32} [color=green];
|
||||
31 -> {33} [color=red];
|
||||
32 -> {33};
|
||||
33 -> {34};
|
||||
34 -> {35};
|
||||
|
||||
}
|
||||
|
||||
+193
-186
@@ -5,285 +5,292 @@ digraph lambdas_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter function run" style="filled" fillcolor=red];
|
||||
subgraph cluster_1 {
|
||||
color=blue
|
||||
1 [label="Enter block"];
|
||||
2 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||
3 [label="Exit block"];
|
||||
}
|
||||
4 [label="Exit function run" style="filled" fillcolor=red];
|
||||
0 [label="Enter file lambdas.kt" style="filled" fillcolor=red];
|
||||
1 [label="Exit file lambdas.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1} [color=green];
|
||||
|
||||
subgraph cluster_1 {
|
||||
color=red
|
||||
2 [label="Enter function run" style="filled" fillcolor=red];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
3 [label="Enter block"];
|
||||
4 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||
5 [label="Exit block"];
|
||||
}
|
||||
6 [label="Exit function run" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1};
|
||||
1 -> {2};
|
||||
2 -> {3};
|
||||
3 -> {4};
|
||||
4 -> {5};
|
||||
5 -> {6};
|
||||
|
||||
subgraph cluster_2 {
|
||||
subgraph cluster_3 {
|
||||
color=red
|
||||
5 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||
subgraph cluster_3 {
|
||||
7 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
6 [label="Enter block"];
|
||||
subgraph cluster_4 {
|
||||
8 [label="Enter block"];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
7 [label="Enter when"];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
8 [label="Enter when branch condition "];
|
||||
9 [label="Access variable R|<local>/x|"];
|
||||
10 [label="Type operator: (R|<local>/x| is R|kotlin/Int|)"];
|
||||
11 [label="Exit when branch condition"];
|
||||
}
|
||||
12 [label="Synthetic else branch"];
|
||||
13 [label="Enter when branch result"];
|
||||
9 [label="Enter when"];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
14 [label="Enter block"];
|
||||
15 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
16 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
17 [label="Enter block"];
|
||||
18 [label="Access variable R|<local>/x|"];
|
||||
19 [label="Smart cast: R|<local>/x|"];
|
||||
20 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||
21 [label="Exit block"];
|
||||
}
|
||||
22 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
23 [label="Postponed exit from lambda"];
|
||||
24 [label="Function call: R|/run|(...)" style="filled" fillcolor=yellow];
|
||||
25 [label="Exit block"];
|
||||
10 [label="Enter when branch condition "];
|
||||
11 [label="Access variable R|<local>/x|"];
|
||||
12 [label="Type operator: (R|<local>/x| is R|kotlin/Int|)"];
|
||||
13 [label="Exit when branch condition"];
|
||||
}
|
||||
26 [label="Exit when branch result"];
|
||||
27 [label="Exit when"];
|
||||
14 [label="Synthetic else branch"];
|
||||
15 [label="Enter when branch result"];
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
16 [label="Enter block"];
|
||||
17 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
18 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
19 [label="Enter block"];
|
||||
20 [label="Access variable R|<local>/x|"];
|
||||
21 [label="Smart cast: R|<local>/x|"];
|
||||
22 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||
23 [label="Exit block"];
|
||||
}
|
||||
24 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
25 [label="Postponed exit from lambda"];
|
||||
26 [label="Function call: R|/run|(...)" style="filled" fillcolor=yellow];
|
||||
27 [label="Exit block"];
|
||||
}
|
||||
28 [label="Exit when branch result"];
|
||||
29 [label="Exit when"];
|
||||
}
|
||||
28 [label="Exit block"];
|
||||
30 [label="Exit block"];
|
||||
}
|
||||
29 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||
31 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||
}
|
||||
5 -> {6};
|
||||
6 -> {7};
|
||||
7 -> {8};
|
||||
8 -> {9};
|
||||
9 -> {10};
|
||||
10 -> {11};
|
||||
11 -> {12 13};
|
||||
12 -> {27};
|
||||
13 -> {14};
|
||||
14 -> {15};
|
||||
15 -> {16 23 24};
|
||||
15 -> {16} [style=dashed];
|
||||
11 -> {12};
|
||||
12 -> {13};
|
||||
13 -> {14 15};
|
||||
14 -> {29};
|
||||
15 -> {16};
|
||||
16 -> {17};
|
||||
17 -> {18};
|
||||
17 -> {18 25 26};
|
||||
17 -> {18} [style=dashed];
|
||||
18 -> {19};
|
||||
19 -> {20};
|
||||
20 -> {21};
|
||||
21 -> {22};
|
||||
22 -> {23};
|
||||
23 -> {24};
|
||||
23 -> {15} [color=green style=dashed];
|
||||
24 -> {25};
|
||||
25 -> {26};
|
||||
25 -> {17} [color=green style=dashed];
|
||||
26 -> {27};
|
||||
27 -> {28};
|
||||
28 -> {29};
|
||||
29 -> {30};
|
||||
30 -> {31};
|
||||
|
||||
subgraph cluster_9 {
|
||||
subgraph cluster_10 {
|
||||
color=red
|
||||
30 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||
subgraph cluster_10 {
|
||||
32 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
31 [label="Enter block"];
|
||||
subgraph cluster_11 {
|
||||
33 [label="Enter block"];
|
||||
subgraph cluster_12 {
|
||||
color=blue
|
||||
32 [label="Enter when"];
|
||||
subgraph cluster_12 {
|
||||
color=blue
|
||||
33 [label="Enter when branch condition "];
|
||||
34 [label="Access variable R|<local>/x|"];
|
||||
35 [label="Type operator: (R|<local>/x| is R|kotlin/Int|)"];
|
||||
36 [label="Exit when branch condition"];
|
||||
}
|
||||
37 [label="Synthetic else branch"];
|
||||
38 [label="Enter when branch result"];
|
||||
34 [label="Enter when"];
|
||||
subgraph cluster_13 {
|
||||
color=blue
|
||||
39 [label="Enter block"];
|
||||
40 [label="Exit anonymous function expression"];
|
||||
41 [label="Variable declaration: lval lambda: R|() -> kotlin/Int|"];
|
||||
42 [label="Exit block"];
|
||||
35 [label="Enter when branch condition "];
|
||||
36 [label="Access variable R|<local>/x|"];
|
||||
37 [label="Type operator: (R|<local>/x| is R|kotlin/Int|)"];
|
||||
38 [label="Exit when branch condition"];
|
||||
}
|
||||
43 [label="Exit when branch result"];
|
||||
44 [label="Exit when"];
|
||||
39 [label="Synthetic else branch"];
|
||||
40 [label="Enter when branch result"];
|
||||
subgraph cluster_14 {
|
||||
color=blue
|
||||
41 [label="Enter block"];
|
||||
42 [label="Exit anonymous function expression"];
|
||||
43 [label="Variable declaration: lval lambda: R|() -> kotlin/Int|"];
|
||||
44 [label="Exit block"];
|
||||
}
|
||||
45 [label="Exit when branch result"];
|
||||
46 [label="Exit when"];
|
||||
}
|
||||
45 [label="Exit block"];
|
||||
47 [label="Exit block"];
|
||||
}
|
||||
46 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||
48 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||
}
|
||||
subgraph cluster_14 {
|
||||
subgraph cluster_15 {
|
||||
color=blue
|
||||
47 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_15 {
|
||||
49 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_16 {
|
||||
color=blue
|
||||
48 [label="Enter block"];
|
||||
49 [label="Access variable R|<local>/x|"];
|
||||
50 [label="Smart cast: R|<local>/x|"];
|
||||
51 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||
52 [label="Exit block"];
|
||||
50 [label="Enter block"];
|
||||
51 [label="Access variable R|<local>/x|"];
|
||||
52 [label="Smart cast: R|<local>/x|"];
|
||||
53 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
||||
54 [label="Exit block"];
|
||||
}
|
||||
53 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
55 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
30 -> {31};
|
||||
31 -> {32};
|
||||
32 -> {33};
|
||||
33 -> {34};
|
||||
34 -> {35};
|
||||
35 -> {36};
|
||||
36 -> {37 38};
|
||||
37 -> {44};
|
||||
38 -> {39};
|
||||
39 -> {40};
|
||||
40 -> {41 47};
|
||||
40 -> {47} [style=dashed];
|
||||
36 -> {37};
|
||||
37 -> {38};
|
||||
38 -> {39 40};
|
||||
39 -> {46};
|
||||
40 -> {41};
|
||||
41 -> {42};
|
||||
42 -> {43};
|
||||
42 -> {43 49};
|
||||
42 -> {49} [style=dashed];
|
||||
43 -> {44};
|
||||
44 -> {45};
|
||||
45 -> {46};
|
||||
46 -> {47};
|
||||
47 -> {48};
|
||||
48 -> {49};
|
||||
49 -> {50};
|
||||
50 -> {51};
|
||||
51 -> {52};
|
||||
52 -> {53};
|
||||
|
||||
subgraph cluster_16 {
|
||||
color=red
|
||||
54 [label="Enter function getInt" style="filled" fillcolor=red];
|
||||
subgraph cluster_17 {
|
||||
color=blue
|
||||
55 [label="Enter block"];
|
||||
56 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||
57 [label="Const: Int(1)"];
|
||||
58 [label="Jump: ^getInt Int(1)"];
|
||||
59 [label="Stub" style="filled" fillcolor=gray];
|
||||
60 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
61 [label="Exit function getInt" style="filled" fillcolor=red];
|
||||
}
|
||||
53 -> {54};
|
||||
54 -> {55};
|
||||
55 -> {56};
|
||||
|
||||
subgraph cluster_17 {
|
||||
color=red
|
||||
56 [label="Enter function getInt" style="filled" fillcolor=red];
|
||||
subgraph cluster_18 {
|
||||
color=blue
|
||||
57 [label="Enter block"];
|
||||
58 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||
59 [label="Const: Int(1)"];
|
||||
60 [label="Jump: ^getInt Int(1)"];
|
||||
61 [label="Stub" style="filled" fillcolor=gray];
|
||||
62 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
63 [label="Exit function getInt" style="filled" fillcolor=red];
|
||||
}
|
||||
56 -> {57};
|
||||
57 -> {58};
|
||||
58 -> {61};
|
||||
58 -> {59} [style=dotted];
|
||||
59 -> {60} [style=dotted];
|
||||
58 -> {59};
|
||||
59 -> {60};
|
||||
60 -> {63};
|
||||
60 -> {61} [style=dotted];
|
||||
61 -> {62} [style=dotted];
|
||||
62 -> {63} [style=dotted];
|
||||
|
||||
subgraph cluster_18 {
|
||||
subgraph cluster_19 {
|
||||
color=red
|
||||
62 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||
subgraph cluster_19 {
|
||||
64 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||
subgraph cluster_20 {
|
||||
color=blue
|
||||
63 [label="Enter block"];
|
||||
64 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_20 {
|
||||
65 [label="Enter block"];
|
||||
66 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_21 {
|
||||
color=blue
|
||||
65 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_21 {
|
||||
67 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_22 {
|
||||
color=blue
|
||||
66 [label="Enter block"];
|
||||
67 [label="Const: Int(1)"];
|
||||
68 [label="Jump: ^test_3 Int(1)"];
|
||||
69 [label="Stub" style="filled" fillcolor=gray];
|
||||
70 [label="Exit block" style="filled" fillcolor=gray];
|
||||
68 [label="Enter block"];
|
||||
69 [label="Const: Int(1)"];
|
||||
70 [label="Jump: ^test_3 Int(1)"];
|
||||
71 [label="Stub" style="filled" fillcolor=gray];
|
||||
72 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
71 [label="Exit function <anonymous>" style="filled" fillcolor=gray];
|
||||
73 [label="Exit function <anonymous>" style="filled" fillcolor=gray];
|
||||
}
|
||||
72 [label="Postponed exit from lambda"];
|
||||
73 [label="Function call: R|/getInt|(...)" style="filled" fillcolor=yellow];
|
||||
74 [label="Jump: ^test_3 R|/getInt|(<L> = getInt@fun <anonymous>(): R|kotlin/Unit| <inline=Inline, kind=UNKNOWN> {
|
||||
74 [label="Postponed exit from lambda"];
|
||||
75 [label="Function call: R|/getInt|(...)" style="filled" fillcolor=yellow];
|
||||
76 [label="Jump: ^test_3 R|/getInt|(<L> = getInt@fun <anonymous>(): R|kotlin/Unit| <inline=Inline, kind=UNKNOWN> {
|
||||
^test_3 Int(1)
|
||||
}
|
||||
)"];
|
||||
75 [label="Stub" style="filled" fillcolor=gray];
|
||||
76 [label="Exit block" style="filled" fillcolor=gray];
|
||||
77 [label="Stub" style="filled" fillcolor=gray];
|
||||
78 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
77 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||
79 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||
}
|
||||
62 -> {63};
|
||||
63 -> {64};
|
||||
64 -> {65 72 73};
|
||||
64 -> {65} [style=dashed];
|
||||
64 -> {65};
|
||||
65 -> {66};
|
||||
66 -> {67};
|
||||
66 -> {67 74 75};
|
||||
66 -> {67} [style=dashed];
|
||||
67 -> {68};
|
||||
68 -> {77};
|
||||
68 -> {69} [style=dotted];
|
||||
69 -> {70} [style=dotted];
|
||||
68 -> {69};
|
||||
69 -> {70};
|
||||
70 -> {79};
|
||||
70 -> {71} [style=dotted];
|
||||
71 -> {72} [style=dotted];
|
||||
72 -> {73};
|
||||
72 -> {64} [color=green style=dashed];
|
||||
73 -> {74};
|
||||
74 -> {77};
|
||||
74 -> {75} [style=dotted];
|
||||
75 -> {76} [style=dotted];
|
||||
72 -> {73} [style=dotted];
|
||||
73 -> {74} [style=dotted];
|
||||
74 -> {75};
|
||||
74 -> {66} [color=green style=dashed];
|
||||
75 -> {76};
|
||||
76 -> {79};
|
||||
76 -> {77} [style=dotted];
|
||||
77 -> {78} [style=dotted];
|
||||
78 -> {79} [style=dotted];
|
||||
|
||||
subgraph cluster_22 {
|
||||
subgraph cluster_23 {
|
||||
color=red
|
||||
78 [label="Enter function test_4" style="filled" fillcolor=red];
|
||||
subgraph cluster_23 {
|
||||
80 [label="Enter function test_4" style="filled" fillcolor=red];
|
||||
subgraph cluster_24 {
|
||||
color=blue
|
||||
79 [label="Enter block"];
|
||||
80 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_24 {
|
||||
81 [label="Enter block"];
|
||||
82 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_25 {
|
||||
color=blue
|
||||
81 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_25 {
|
||||
83 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_26 {
|
||||
color=blue
|
||||
82 [label="Enter block"];
|
||||
83 [label="Const: Int(1)"];
|
||||
84 [label="Jump: ^test_4 Int(1)"];
|
||||
85 [label="Stub" style="filled" fillcolor=gray];
|
||||
86 [label="Exit block" style="filled" fillcolor=gray];
|
||||
84 [label="Enter block"];
|
||||
85 [label="Const: Int(1)"];
|
||||
86 [label="Jump: ^test_4 Int(1)"];
|
||||
87 [label="Stub" style="filled" fillcolor=gray];
|
||||
88 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
87 [label="Exit function <anonymous>" style="filled" fillcolor=gray];
|
||||
89 [label="Exit function <anonymous>" style="filled" fillcolor=gray];
|
||||
}
|
||||
88 [label="Postponed exit from lambda"];
|
||||
89 [label="Function call: R|/getInt|(...)" style="filled" fillcolor=yellow];
|
||||
90 [label="Jump: ^test_4 R|/getInt|(block = getInt@fun <anonymous>(): R|kotlin/Unit| <inline=Inline, kind=UNKNOWN> {
|
||||
90 [label="Postponed exit from lambda"];
|
||||
91 [label="Function call: R|/getInt|(...)" style="filled" fillcolor=yellow];
|
||||
92 [label="Jump: ^test_4 R|/getInt|(block = getInt@fun <anonymous>(): R|kotlin/Unit| <inline=Inline, kind=UNKNOWN> {
|
||||
^test_4 Int(1)
|
||||
}
|
||||
)"];
|
||||
91 [label="Stub" style="filled" fillcolor=gray];
|
||||
92 [label="Exit block" style="filled" fillcolor=gray];
|
||||
93 [label="Stub" style="filled" fillcolor=gray];
|
||||
94 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
93 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||
95 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||
}
|
||||
78 -> {79};
|
||||
79 -> {80};
|
||||
80 -> {81 88 89};
|
||||
80 -> {81} [style=dashed];
|
||||
80 -> {81};
|
||||
81 -> {82};
|
||||
82 -> {83};
|
||||
82 -> {83 90 91};
|
||||
82 -> {83} [style=dashed];
|
||||
83 -> {84};
|
||||
84 -> {93};
|
||||
84 -> {85} [style=dotted];
|
||||
85 -> {86} [style=dotted];
|
||||
84 -> {85};
|
||||
85 -> {86};
|
||||
86 -> {95};
|
||||
86 -> {87} [style=dotted];
|
||||
87 -> {88} [style=dotted];
|
||||
88 -> {89};
|
||||
88 -> {80} [color=green style=dashed];
|
||||
89 -> {90};
|
||||
90 -> {93};
|
||||
90 -> {91} [style=dotted];
|
||||
91 -> {92} [style=dotted];
|
||||
88 -> {89} [style=dotted];
|
||||
89 -> {90} [style=dotted];
|
||||
90 -> {91};
|
||||
90 -> {82} [color=green style=dashed];
|
||||
91 -> {92};
|
||||
92 -> {95};
|
||||
92 -> {93} [style=dotted];
|
||||
93 -> {94} [style=dotted];
|
||||
94 -> {95} [style=dotted];
|
||||
|
||||
}
|
||||
|
||||
+308
-301
@@ -5,180 +5,187 @@ digraph localClassesWithImplicit_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter function myRun" style="filled" fillcolor=red];
|
||||
subgraph cluster_1 {
|
||||
color=blue
|
||||
1 [label="Enter block"];
|
||||
2 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|T|>|()" style="filled" fillcolor=yellow];
|
||||
3 [label="Jump: ^myRun R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|T|>|()"];
|
||||
4 [label="Stub" style="filled" fillcolor=gray];
|
||||
5 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
6 [label="Exit function myRun" style="filled" fillcolor=red];
|
||||
0 [label="Enter file localClassesWithImplicit.kt" style="filled" fillcolor=red];
|
||||
1 [label="Exit file localClassesWithImplicit.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1};
|
||||
1 -> {2};
|
||||
2 -> {3};
|
||||
3 -> {6};
|
||||
3 -> {4} [style=dotted];
|
||||
4 -> {5} [style=dotted];
|
||||
5 -> {6} [style=dotted];
|
||||
0 -> {1} [color=green];
|
||||
|
||||
subgraph cluster_2 {
|
||||
subgraph cluster_1 {
|
||||
color=red
|
||||
7 [label="Enter function test" style="filled" fillcolor=red];
|
||||
subgraph cluster_3 {
|
||||
2 [label="Enter function myRun" style="filled" fillcolor=red];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
8 [label="Enter block"];
|
||||
subgraph cluster_4 {
|
||||
3 [label="Enter block"];
|
||||
4 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|T|>|()" style="filled" fillcolor=yellow];
|
||||
5 [label="Jump: ^myRun R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|T|>|()"];
|
||||
6 [label="Stub" style="filled" fillcolor=gray];
|
||||
7 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
8 [label="Exit function myRun" style="filled" fillcolor=red];
|
||||
}
|
||||
2 -> {3};
|
||||
3 -> {4};
|
||||
4 -> {5};
|
||||
5 -> {8};
|
||||
5 -> {6} [style=dotted];
|
||||
6 -> {7} [style=dotted];
|
||||
7 -> {8} [style=dotted];
|
||||
|
||||
subgraph cluster_3 {
|
||||
color=red
|
||||
9 [label="Enter function test" style="filled" fillcolor=red];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
10 [label="Enter block"];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
9 [label="Enter when"];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
10 [label="Enter when branch condition "];
|
||||
11 [label="Access variable R|<local>/a|"];
|
||||
12 [label="Type operator: (R|<local>/a| !is R|kotlin/String|)"];
|
||||
13 [label="Exit when branch condition"];
|
||||
}
|
||||
14 [label="Synthetic else branch"];
|
||||
15 [label="Enter when branch result"];
|
||||
11 [label="Enter when"];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
16 [label="Enter block"];
|
||||
17 [label="Jump: ^test Unit"];
|
||||
18 [label="Stub" style="filled" fillcolor=gray];
|
||||
19 [label="Exit block" style="filled" fillcolor=gray];
|
||||
12 [label="Enter when branch condition "];
|
||||
13 [label="Access variable R|<local>/a|"];
|
||||
14 [label="Type operator: (R|<local>/a| !is R|kotlin/String|)"];
|
||||
15 [label="Exit when branch condition"];
|
||||
}
|
||||
20 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
21 [label="Exit when"];
|
||||
}
|
||||
22 [label="Local class declaration"];
|
||||
23 [label="Enter anonymous object"];
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
24 [label="Enter class <anonymous object>" style="filled" fillcolor=red];
|
||||
subgraph cluster_8 {
|
||||
16 [label="Synthetic else branch"];
|
||||
17 [label="Enter when branch result"];
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
25 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
26 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
27 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
18 [label="Enter block"];
|
||||
19 [label="Jump: ^test Unit"];
|
||||
20 [label="Stub" style="filled" fillcolor=gray];
|
||||
21 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
28 [label="Exit class <anonymous object>" style="filled" fillcolor=red];
|
||||
22 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
23 [label="Exit when"];
|
||||
}
|
||||
29 [label="Exit anonymous object expression"];
|
||||
30 [label="Variable declaration: lval x: R|<anonymous>|"];
|
||||
31 [label="Exit block"];
|
||||
}
|
||||
32 [label="Exit function test" style="filled" fillcolor=red];
|
||||
}
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
33 [label="Enter function baz" style="filled" fillcolor=red];
|
||||
subgraph cluster_10 {
|
||||
color=blue
|
||||
34 [label="Enter block"];
|
||||
35 [label="Const: Int(1)"];
|
||||
36 [label="Jump: ^baz Int(1)"];
|
||||
37 [label="Stub" style="filled" fillcolor=gray];
|
||||
38 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
39 [label="Exit function baz" style="filled" fillcolor=red];
|
||||
}
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
40 [label="Enter function bar" style="filled" fillcolor=red];
|
||||
subgraph cluster_12 {
|
||||
color=blue
|
||||
41 [label="Enter block"];
|
||||
42 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_13 {
|
||||
24 [label="Local class declaration"];
|
||||
25 [label="Enter anonymous object"];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
43 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_14 {
|
||||
26 [label="Enter class <anonymous object>" style="filled" fillcolor=red];
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
44 [label="Enter block"];
|
||||
45 [label="Access variable R|<local>/a|"];
|
||||
46 [label="Smart cast: R|<local>/a|"];
|
||||
47 [label="Access variable R|kotlin/String.length|"];
|
||||
48 [label="Access variable R|<local>/b|"];
|
||||
49 [label="Access variable <Unresolved name: length>#"];
|
||||
50 [label="Function call: this@R|/<anonymous>|.R|/<anonymous>.baz|()" style="filled" fillcolor=yellow];
|
||||
51 [label="Exit block"];
|
||||
27 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
28 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
29 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
}
|
||||
52 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
30 [label="Exit class <anonymous object>" style="filled" fillcolor=red];
|
||||
}
|
||||
53 [label="Postponed exit from lambda"];
|
||||
54 [label="Function call: R|/myRun|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
||||
55 [label="Jump: ^bar R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=UNKNOWN> {
|
||||
31 [label="Exit anonymous object expression"];
|
||||
32 [label="Variable declaration: lval x: R|<anonymous>|"];
|
||||
33 [label="Exit block"];
|
||||
}
|
||||
34 [label="Exit function test" style="filled" fillcolor=red];
|
||||
}
|
||||
subgraph cluster_10 {
|
||||
color=blue
|
||||
35 [label="Enter function baz" style="filled" fillcolor=red];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
36 [label="Enter block"];
|
||||
37 [label="Const: Int(1)"];
|
||||
38 [label="Jump: ^baz Int(1)"];
|
||||
39 [label="Stub" style="filled" fillcolor=gray];
|
||||
40 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
41 [label="Exit function baz" style="filled" fillcolor=red];
|
||||
}
|
||||
subgraph cluster_12 {
|
||||
color=blue
|
||||
42 [label="Enter function bar" style="filled" fillcolor=red];
|
||||
subgraph cluster_13 {
|
||||
color=blue
|
||||
43 [label="Enter block"];
|
||||
44 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_14 {
|
||||
color=blue
|
||||
45 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_15 {
|
||||
color=blue
|
||||
46 [label="Enter block"];
|
||||
47 [label="Access variable R|<local>/a|"];
|
||||
48 [label="Smart cast: R|<local>/a|"];
|
||||
49 [label="Access variable R|kotlin/String.length|"];
|
||||
50 [label="Access variable R|<local>/b|"];
|
||||
51 [label="Access variable <Unresolved name: length>#"];
|
||||
52 [label="Function call: this@R|/<anonymous>|.R|/<anonymous>.baz|()" style="filled" fillcolor=yellow];
|
||||
53 [label="Exit block"];
|
||||
}
|
||||
54 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
55 [label="Postponed exit from lambda"];
|
||||
56 [label="Function call: R|/myRun|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
||||
57 [label="Jump: ^bar R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=UNKNOWN> {
|
||||
R|<local>/a|.R|kotlin/String.length|
|
||||
R|<local>/b|.<Unresolved name: length>#
|
||||
^ this@R|/<anonymous>|.R|/<anonymous>.baz|()
|
||||
}
|
||||
)"];
|
||||
56 [label="Stub" style="filled" fillcolor=gray];
|
||||
57 [label="Exit block" style="filled" fillcolor=gray];
|
||||
58 [label="Stub" style="filled" fillcolor=gray];
|
||||
59 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
58 [label="Exit function bar" style="filled" fillcolor=red];
|
||||
60 [label="Exit function bar" style="filled" fillcolor=red];
|
||||
}
|
||||
subgraph cluster_15 {
|
||||
subgraph cluster_16 {
|
||||
color=blue
|
||||
59 [label="Enter function foo" style="filled" fillcolor=red];
|
||||
subgraph cluster_16 {
|
||||
61 [label="Enter function foo" style="filled" fillcolor=red];
|
||||
subgraph cluster_17 {
|
||||
color=blue
|
||||
60 [label="Enter block"];
|
||||
61 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_17 {
|
||||
62 [label="Enter block"];
|
||||
63 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_18 {
|
||||
color=blue
|
||||
62 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_18 {
|
||||
64 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_19 {
|
||||
color=blue
|
||||
63 [label="Enter block"];
|
||||
64 [label="Access variable R|<local>/a|"];
|
||||
65 [label="Smart cast: R|<local>/a|"];
|
||||
66 [label="Access variable R|kotlin/String.length|"];
|
||||
subgraph cluster_19 {
|
||||
65 [label="Enter block"];
|
||||
66 [label="Access variable R|<local>/a|"];
|
||||
67 [label="Smart cast: R|<local>/a|"];
|
||||
68 [label="Access variable R|kotlin/String.length|"];
|
||||
subgraph cluster_20 {
|
||||
color=blue
|
||||
67 [label="Enter when"];
|
||||
subgraph cluster_20 {
|
||||
color=blue
|
||||
68 [label="Enter when branch condition "];
|
||||
69 [label="Access variable R|<local>/b|"];
|
||||
70 [label="Type operator: (R|<local>/b| is R|kotlin/String|)"];
|
||||
71 [label="Exit when branch condition"];
|
||||
}
|
||||
69 [label="Enter when"];
|
||||
subgraph cluster_21 {
|
||||
color=blue
|
||||
72 [label="Enter when branch condition else"];
|
||||
70 [label="Enter when branch condition "];
|
||||
71 [label="Access variable R|<local>/b|"];
|
||||
72 [label="Type operator: (R|<local>/b| is R|kotlin/String|)"];
|
||||
73 [label="Exit when branch condition"];
|
||||
}
|
||||
74 [label="Enter when branch result"];
|
||||
subgraph cluster_22 {
|
||||
color=blue
|
||||
75 [label="Enter block"];
|
||||
76 [label="Const: Int(1)"];
|
||||
77 [label="Exit block"];
|
||||
74 [label="Enter when branch condition else"];
|
||||
75 [label="Exit when branch condition"];
|
||||
}
|
||||
78 [label="Exit when branch result"];
|
||||
79 [label="Enter when branch result"];
|
||||
76 [label="Enter when branch result"];
|
||||
subgraph cluster_23 {
|
||||
color=blue
|
||||
80 [label="Enter block"];
|
||||
81 [label="Access variable R|<local>/b|"];
|
||||
82 [label="Smart cast: R|<local>/b|"];
|
||||
83 [label="Access variable R|kotlin/String.length|"];
|
||||
84 [label="Function call: this@R|/<anonymous>|.R|/<anonymous>.bar|()" style="filled" fillcolor=yellow];
|
||||
85 [label="Exit block"];
|
||||
77 [label="Enter block"];
|
||||
78 [label="Const: Int(1)"];
|
||||
79 [label="Exit block"];
|
||||
}
|
||||
86 [label="Exit when branch result"];
|
||||
87 [label="Exit when"];
|
||||
80 [label="Exit when branch result"];
|
||||
81 [label="Enter when branch result"];
|
||||
subgraph cluster_24 {
|
||||
color=blue
|
||||
82 [label="Enter block"];
|
||||
83 [label="Access variable R|<local>/b|"];
|
||||
84 [label="Smart cast: R|<local>/b|"];
|
||||
85 [label="Access variable R|kotlin/String.length|"];
|
||||
86 [label="Function call: this@R|/<anonymous>|.R|/<anonymous>.bar|()" style="filled" fillcolor=yellow];
|
||||
87 [label="Exit block"];
|
||||
}
|
||||
88 [label="Exit when branch result"];
|
||||
89 [label="Exit when"];
|
||||
}
|
||||
88 [label="Exit block"];
|
||||
90 [label="Exit block"];
|
||||
}
|
||||
89 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
91 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
90 [label="Postponed exit from lambda"];
|
||||
91 [label="Function call: R|/myRun|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
||||
92 [label="Jump: ^foo R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=UNKNOWN> {
|
||||
92 [label="Postponed exit from lambda"];
|
||||
93 [label="Function call: R|/myRun|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
||||
94 [label="Jump: ^foo R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=UNKNOWN> {
|
||||
R|<local>/a|.R|kotlin/String.length|
|
||||
^ when () {
|
||||
(R|<local>/b| is R|kotlin/String|) -> {
|
||||
@@ -192,130 +199,130 @@ digraph localClassesWithImplicit_kt {
|
||||
|
||||
}
|
||||
)"];
|
||||
93 [label="Stub" style="filled" fillcolor=gray];
|
||||
94 [label="Exit block" style="filled" fillcolor=gray];
|
||||
95 [label="Stub" style="filled" fillcolor=gray];
|
||||
96 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
95 [label="Exit function foo" style="filled" fillcolor=red];
|
||||
97 [label="Exit function foo" style="filled" fillcolor=red];
|
||||
}
|
||||
subgraph cluster_24 {
|
||||
subgraph cluster_25 {
|
||||
color=blue
|
||||
96 [label="Enter class A" style="filled" fillcolor=red];
|
||||
subgraph cluster_25 {
|
||||
98 [label="Enter class A" style="filled" fillcolor=red];
|
||||
subgraph cluster_26 {
|
||||
color=blue
|
||||
97 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
98 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
99 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
99 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
100 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
101 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
}
|
||||
100 [label="Exit class A" style="filled" fillcolor=red];
|
||||
102 [label="Exit class A" style="filled" fillcolor=red];
|
||||
}
|
||||
subgraph cluster_26 {
|
||||
subgraph cluster_27 {
|
||||
color=blue
|
||||
101 [label="Enter function baz" style="filled" fillcolor=red];
|
||||
subgraph cluster_27 {
|
||||
103 [label="Enter function baz" style="filled" fillcolor=red];
|
||||
subgraph cluster_28 {
|
||||
color=blue
|
||||
102 [label="Enter block"];
|
||||
103 [label="Const: Int(1)"];
|
||||
104 [label="Jump: ^baz Int(1)"];
|
||||
105 [label="Stub" style="filled" fillcolor=gray];
|
||||
106 [label="Exit block" style="filled" fillcolor=gray];
|
||||
104 [label="Enter block"];
|
||||
105 [label="Const: Int(1)"];
|
||||
106 [label="Jump: ^baz Int(1)"];
|
||||
107 [label="Stub" style="filled" fillcolor=gray];
|
||||
108 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
107 [label="Exit function baz" style="filled" fillcolor=red];
|
||||
109 [label="Exit function baz" style="filled" fillcolor=red];
|
||||
}
|
||||
subgraph cluster_28 {
|
||||
subgraph cluster_29 {
|
||||
color=blue
|
||||
108 [label="Enter function bar" style="filled" fillcolor=red];
|
||||
subgraph cluster_29 {
|
||||
110 [label="Enter function bar" style="filled" fillcolor=red];
|
||||
subgraph cluster_30 {
|
||||
color=blue
|
||||
109 [label="Enter block"];
|
||||
110 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_30 {
|
||||
111 [label="Enter block"];
|
||||
112 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_31 {
|
||||
color=blue
|
||||
111 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_31 {
|
||||
113 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_32 {
|
||||
color=blue
|
||||
112 [label="Enter block"];
|
||||
113 [label="Access variable R|<local>/b|"];
|
||||
114 [label="Access variable <Unresolved name: length>#"];
|
||||
115 [label="Access variable R|<local>/a|"];
|
||||
116 [label="Smart cast: R|<local>/a|"];
|
||||
117 [label="Access variable R|kotlin/String.length|"];
|
||||
118 [label="Function call: this@R|<local>/A|.R|<local>/baz|()" style="filled" fillcolor=yellow];
|
||||
119 [label="Exit block"];
|
||||
114 [label="Enter block"];
|
||||
115 [label="Access variable R|<local>/b|"];
|
||||
116 [label="Access variable <Unresolved name: length>#"];
|
||||
117 [label="Access variable R|<local>/a|"];
|
||||
118 [label="Smart cast: R|<local>/a|"];
|
||||
119 [label="Access variable R|kotlin/String.length|"];
|
||||
120 [label="Function call: this@R|<local>/A|.R|<local>/baz|()" style="filled" fillcolor=yellow];
|
||||
121 [label="Exit block"];
|
||||
}
|
||||
120 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
122 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
121 [label="Postponed exit from lambda"];
|
||||
122 [label="Function call: R|/myRun|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
||||
123 [label="Jump: ^bar R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=UNKNOWN> {
|
||||
123 [label="Postponed exit from lambda"];
|
||||
124 [label="Function call: R|/myRun|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
||||
125 [label="Jump: ^bar R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=UNKNOWN> {
|
||||
R|<local>/b|.<Unresolved name: length>#
|
||||
R|<local>/a|.R|kotlin/String.length|
|
||||
^ this@R|<local>/A|.R|<local>/baz|()
|
||||
}
|
||||
)"];
|
||||
124 [label="Stub" style="filled" fillcolor=gray];
|
||||
125 [label="Exit block" style="filled" fillcolor=gray];
|
||||
126 [label="Stub" style="filled" fillcolor=gray];
|
||||
127 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
126 [label="Exit function bar" style="filled" fillcolor=red];
|
||||
128 [label="Exit function bar" style="filled" fillcolor=red];
|
||||
}
|
||||
subgraph cluster_32 {
|
||||
subgraph cluster_33 {
|
||||
color=blue
|
||||
127 [label="Enter function foo" style="filled" fillcolor=red];
|
||||
subgraph cluster_33 {
|
||||
129 [label="Enter function foo" style="filled" fillcolor=red];
|
||||
subgraph cluster_34 {
|
||||
color=blue
|
||||
128 [label="Enter block"];
|
||||
129 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_34 {
|
||||
130 [label="Enter block"];
|
||||
131 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_35 {
|
||||
color=blue
|
||||
130 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_35 {
|
||||
132 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_36 {
|
||||
color=blue
|
||||
131 [label="Enter block"];
|
||||
132 [label="Access variable R|<local>/a|"];
|
||||
133 [label="Smart cast: R|<local>/a|"];
|
||||
134 [label="Access variable R|kotlin/String.length|"];
|
||||
subgraph cluster_36 {
|
||||
133 [label="Enter block"];
|
||||
134 [label="Access variable R|<local>/a|"];
|
||||
135 [label="Smart cast: R|<local>/a|"];
|
||||
136 [label="Access variable R|kotlin/String.length|"];
|
||||
subgraph cluster_37 {
|
||||
color=blue
|
||||
135 [label="Enter when"];
|
||||
subgraph cluster_37 {
|
||||
color=blue
|
||||
136 [label="Enter when branch condition "];
|
||||
137 [label="Access variable R|<local>/b|"];
|
||||
138 [label="Type operator: (R|<local>/b| is R|kotlin/String|)"];
|
||||
139 [label="Exit when branch condition"];
|
||||
}
|
||||
137 [label="Enter when"];
|
||||
subgraph cluster_38 {
|
||||
color=blue
|
||||
140 [label="Enter when branch condition else"];
|
||||
138 [label="Enter when branch condition "];
|
||||
139 [label="Access variable R|<local>/b|"];
|
||||
140 [label="Type operator: (R|<local>/b| is R|kotlin/String|)"];
|
||||
141 [label="Exit when branch condition"];
|
||||
}
|
||||
142 [label="Enter when branch result"];
|
||||
subgraph cluster_39 {
|
||||
color=blue
|
||||
143 [label="Enter block"];
|
||||
144 [label="Const: Int(1)"];
|
||||
145 [label="Exit block"];
|
||||
142 [label="Enter when branch condition else"];
|
||||
143 [label="Exit when branch condition"];
|
||||
}
|
||||
146 [label="Exit when branch result"];
|
||||
147 [label="Enter when branch result"];
|
||||
144 [label="Enter when branch result"];
|
||||
subgraph cluster_40 {
|
||||
color=blue
|
||||
148 [label="Enter block"];
|
||||
149 [label="Access variable R|<local>/b|"];
|
||||
150 [label="Smart cast: R|<local>/b|"];
|
||||
151 [label="Access variable R|kotlin/String.length|"];
|
||||
152 [label="Function call: this@R|<local>/A|.R|<local>/bar|()" style="filled" fillcolor=yellow];
|
||||
153 [label="Exit block"];
|
||||
145 [label="Enter block"];
|
||||
146 [label="Const: Int(1)"];
|
||||
147 [label="Exit block"];
|
||||
}
|
||||
154 [label="Exit when branch result"];
|
||||
155 [label="Exit when"];
|
||||
148 [label="Exit when branch result"];
|
||||
149 [label="Enter when branch result"];
|
||||
subgraph cluster_41 {
|
||||
color=blue
|
||||
150 [label="Enter block"];
|
||||
151 [label="Access variable R|<local>/b|"];
|
||||
152 [label="Smart cast: R|<local>/b|"];
|
||||
153 [label="Access variable R|kotlin/String.length|"];
|
||||
154 [label="Function call: this@R|<local>/A|.R|<local>/bar|()" style="filled" fillcolor=yellow];
|
||||
155 [label="Exit block"];
|
||||
}
|
||||
156 [label="Exit when branch result"];
|
||||
157 [label="Exit when"];
|
||||
}
|
||||
156 [label="Exit block"];
|
||||
158 [label="Exit block"];
|
||||
}
|
||||
157 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
159 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
158 [label="Postponed exit from lambda"];
|
||||
159 [label="Function call: R|/myRun|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
||||
160 [label="Jump: ^foo R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=UNKNOWN> {
|
||||
160 [label="Postponed exit from lambda"];
|
||||
161 [label="Function call: R|/myRun|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
|
||||
162 [label="Jump: ^foo R|/myRun|<R|kotlin/Int|>(<L> = myRun@fun <anonymous>(): R|kotlin/Int| <inline=Inline, kind=UNKNOWN> {
|
||||
R|<local>/a|.R|kotlin/String.length|
|
||||
^ when () {
|
||||
(R|<local>/b| is R|kotlin/String|) -> {
|
||||
@@ -329,58 +336,56 @@ digraph localClassesWithImplicit_kt {
|
||||
|
||||
}
|
||||
)"];
|
||||
161 [label="Stub" style="filled" fillcolor=gray];
|
||||
162 [label="Exit block" style="filled" fillcolor=gray];
|
||||
163 [label="Stub" style="filled" fillcolor=gray];
|
||||
164 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
163 [label="Exit function foo" style="filled" fillcolor=red];
|
||||
165 [label="Exit function foo" style="filled" fillcolor=red];
|
||||
}
|
||||
7 -> {8};
|
||||
8 -> {9};
|
||||
9 -> {10};
|
||||
10 -> {11};
|
||||
11 -> {12};
|
||||
12 -> {13};
|
||||
13 -> {14 15};
|
||||
14 -> {21};
|
||||
15 -> {16};
|
||||
16 -> {17};
|
||||
17 -> {32};
|
||||
17 -> {18} [style=dotted];
|
||||
18 -> {19} [style=dotted];
|
||||
13 -> {14};
|
||||
14 -> {15};
|
||||
15 -> {16 17};
|
||||
16 -> {23};
|
||||
17 -> {18};
|
||||
18 -> {19};
|
||||
19 -> {34};
|
||||
19 -> {20} [style=dotted];
|
||||
20 -> {21} [style=dotted];
|
||||
21 -> {22};
|
||||
22 -> {23 96};
|
||||
22 -> {96} [style=dashed];
|
||||
21 -> {22} [style=dotted];
|
||||
22 -> {23} [style=dotted];
|
||||
23 -> {24};
|
||||
23 -> {29} [style=dotted];
|
||||
23 -> {24} [style=dashed];
|
||||
24 -> {25};
|
||||
24 -> {33 40 59} [color=red];
|
||||
24 -> {28} [style=dotted];
|
||||
24 -> {25} [style=dashed];
|
||||
24 -> {25 98};
|
||||
24 -> {98} [style=dashed];
|
||||
25 -> {26};
|
||||
25 -> {31} [style=dotted];
|
||||
25 -> {26} [style=dashed];
|
||||
26 -> {27};
|
||||
26 -> {35 42 61} [color=red];
|
||||
26 -> {30} [style=dotted];
|
||||
26 -> {27} [style=dashed];
|
||||
27 -> {28};
|
||||
28 -> {29};
|
||||
28 -> {33 40 59} [color=green];
|
||||
28 -> {33 40 59} [style=dashed];
|
||||
29 -> {30};
|
||||
30 -> {31};
|
||||
30 -> {35 42 61} [color=green];
|
||||
30 -> {35 42 61} [style=dashed];
|
||||
31 -> {32};
|
||||
32 -> {33};
|
||||
33 -> {34};
|
||||
34 -> {35};
|
||||
35 -> {36};
|
||||
36 -> {39};
|
||||
36 -> {37} [style=dotted];
|
||||
37 -> {38} [style=dotted];
|
||||
36 -> {37};
|
||||
37 -> {38};
|
||||
38 -> {41};
|
||||
38 -> {39} [style=dotted];
|
||||
40 -> {41};
|
||||
41 -> {42};
|
||||
42 -> {43 53 54};
|
||||
42 -> {43} [style=dashed];
|
||||
39 -> {40} [style=dotted];
|
||||
40 -> {41} [style=dotted];
|
||||
42 -> {43};
|
||||
43 -> {44};
|
||||
44 -> {45};
|
||||
44 -> {45 55 56};
|
||||
44 -> {45} [style=dashed];
|
||||
45 -> {46};
|
||||
46 -> {47};
|
||||
47 -> {48};
|
||||
@@ -390,18 +395,18 @@ digraph localClassesWithImplicit_kt {
|
||||
51 -> {52};
|
||||
52 -> {53};
|
||||
53 -> {54};
|
||||
53 -> {42} [color=green style=dashed];
|
||||
54 -> {55};
|
||||
55 -> {58};
|
||||
55 -> {56} [style=dotted];
|
||||
56 -> {57} [style=dotted];
|
||||
55 -> {56};
|
||||
55 -> {44} [color=green style=dashed];
|
||||
56 -> {57};
|
||||
57 -> {60};
|
||||
57 -> {58} [style=dotted];
|
||||
59 -> {60};
|
||||
60 -> {61};
|
||||
61 -> {62 90 91};
|
||||
61 -> {62} [style=dashed];
|
||||
58 -> {59} [style=dotted];
|
||||
59 -> {60} [style=dotted];
|
||||
61 -> {62};
|
||||
62 -> {63};
|
||||
63 -> {64};
|
||||
63 -> {64 92 93};
|
||||
63 -> {64} [style=dashed];
|
||||
64 -> {65};
|
||||
65 -> {66};
|
||||
66 -> {67};
|
||||
@@ -409,16 +414,16 @@ digraph localClassesWithImplicit_kt {
|
||||
68 -> {69};
|
||||
69 -> {70};
|
||||
70 -> {71};
|
||||
71 -> {72 79};
|
||||
71 -> {72};
|
||||
72 -> {73};
|
||||
73 -> {74};
|
||||
73 -> {74 81};
|
||||
74 -> {75};
|
||||
75 -> {76};
|
||||
76 -> {77};
|
||||
77 -> {78};
|
||||
78 -> {87};
|
||||
78 -> {79};
|
||||
79 -> {80};
|
||||
80 -> {81};
|
||||
80 -> {89};
|
||||
81 -> {82};
|
||||
82 -> {83};
|
||||
83 -> {84};
|
||||
@@ -429,34 +434,34 @@ digraph localClassesWithImplicit_kt {
|
||||
88 -> {89};
|
||||
89 -> {90};
|
||||
90 -> {91};
|
||||
90 -> {61} [color=green style=dashed];
|
||||
91 -> {92};
|
||||
92 -> {95};
|
||||
92 -> {93} [style=dotted];
|
||||
93 -> {94} [style=dotted];
|
||||
92 -> {93};
|
||||
92 -> {63} [color=green style=dashed];
|
||||
93 -> {94};
|
||||
94 -> {97};
|
||||
94 -> {95} [style=dotted];
|
||||
96 -> {97};
|
||||
96 -> {101 108 127} [color=red];
|
||||
96 -> {100} [style=dotted];
|
||||
96 -> {97} [style=dashed];
|
||||
97 -> {98};
|
||||
95 -> {96} [style=dotted];
|
||||
96 -> {97} [style=dotted];
|
||||
98 -> {99};
|
||||
99 -> {100} [color=green];
|
||||
100 -> {101 108 127} [color=green];
|
||||
100 -> {101 108 127} [style=dashed];
|
||||
101 -> {102};
|
||||
102 -> {103};
|
||||
98 -> {103 110 129} [color=red];
|
||||
98 -> {102} [style=dotted];
|
||||
98 -> {99} [style=dashed];
|
||||
99 -> {100};
|
||||
100 -> {101};
|
||||
101 -> {102} [color=green];
|
||||
102 -> {103 110 129} [color=green];
|
||||
102 -> {103 110 129} [style=dashed];
|
||||
103 -> {104};
|
||||
104 -> {107};
|
||||
104 -> {105} [style=dotted];
|
||||
105 -> {106} [style=dotted];
|
||||
104 -> {105};
|
||||
105 -> {106};
|
||||
106 -> {109};
|
||||
106 -> {107} [style=dotted];
|
||||
108 -> {109};
|
||||
109 -> {110};
|
||||
110 -> {111 121 122};
|
||||
110 -> {111} [style=dashed];
|
||||
107 -> {108} [style=dotted];
|
||||
108 -> {109} [style=dotted];
|
||||
110 -> {111};
|
||||
111 -> {112};
|
||||
112 -> {113};
|
||||
112 -> {113 123 124};
|
||||
112 -> {113} [style=dashed];
|
||||
113 -> {114};
|
||||
114 -> {115};
|
||||
115 -> {116};
|
||||
@@ -466,18 +471,18 @@ digraph localClassesWithImplicit_kt {
|
||||
119 -> {120};
|
||||
120 -> {121};
|
||||
121 -> {122};
|
||||
121 -> {110} [color=green style=dashed];
|
||||
122 -> {123};
|
||||
123 -> {126};
|
||||
123 -> {124} [style=dotted];
|
||||
124 -> {125} [style=dotted];
|
||||
123 -> {124};
|
||||
123 -> {112} [color=green style=dashed];
|
||||
124 -> {125};
|
||||
125 -> {128};
|
||||
125 -> {126} [style=dotted];
|
||||
127 -> {128};
|
||||
128 -> {129};
|
||||
129 -> {130 158 159};
|
||||
129 -> {130} [style=dashed];
|
||||
126 -> {127} [style=dotted];
|
||||
127 -> {128} [style=dotted];
|
||||
129 -> {130};
|
||||
130 -> {131};
|
||||
131 -> {132};
|
||||
131 -> {132 160 161};
|
||||
131 -> {132} [style=dashed];
|
||||
132 -> {133};
|
||||
133 -> {134};
|
||||
134 -> {135};
|
||||
@@ -485,16 +490,16 @@ digraph localClassesWithImplicit_kt {
|
||||
136 -> {137};
|
||||
137 -> {138};
|
||||
138 -> {139};
|
||||
139 -> {140 147};
|
||||
139 -> {140};
|
||||
140 -> {141};
|
||||
141 -> {142};
|
||||
141 -> {142 149};
|
||||
142 -> {143};
|
||||
143 -> {144};
|
||||
144 -> {145};
|
||||
145 -> {146};
|
||||
146 -> {155};
|
||||
146 -> {147};
|
||||
147 -> {148};
|
||||
148 -> {149};
|
||||
148 -> {157};
|
||||
149 -> {150};
|
||||
150 -> {151};
|
||||
151 -> {152};
|
||||
@@ -505,11 +510,13 @@ digraph localClassesWithImplicit_kt {
|
||||
156 -> {157};
|
||||
157 -> {158};
|
||||
158 -> {159};
|
||||
158 -> {129} [color=green style=dashed];
|
||||
159 -> {160};
|
||||
160 -> {163};
|
||||
160 -> {161} [style=dotted];
|
||||
161 -> {162} [style=dotted];
|
||||
160 -> {161};
|
||||
160 -> {131} [color=green style=dashed];
|
||||
161 -> {162};
|
||||
162 -> {165};
|
||||
162 -> {163} [style=dotted];
|
||||
163 -> {164} [style=dotted];
|
||||
164 -> {165} [style=dotted];
|
||||
|
||||
}
|
||||
|
||||
+365
-358
@@ -5,96 +5,101 @@ digraph loops_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter function testWhile" style="filled" fillcolor=red];
|
||||
subgraph cluster_1 {
|
||||
0 [label="Enter file loops.kt" style="filled" fillcolor=red];
|
||||
1 [label="Exit file loops.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1} [color=green];
|
||||
|
||||
subgraph cluster_1 {
|
||||
color=red
|
||||
2 [label="Enter function testWhile" style="filled" fillcolor=red];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
1 [label="Enter block"];
|
||||
subgraph cluster_2 {
|
||||
3 [label="Enter block"];
|
||||
subgraph cluster_3 {
|
||||
color=blue
|
||||
2 [label="Enter while loop"];
|
||||
subgraph cluster_3 {
|
||||
color=blue
|
||||
3 [label="Enter loop condition"];
|
||||
4 [label="Access variable R|<local>/b|"];
|
||||
5 [label="Exit loop condition"];
|
||||
}
|
||||
4 [label="Enter while loop"];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
6 [label="Enter loop block"];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
7 [label="Enter block"];
|
||||
8 [label="Access variable R|<local>/x|"];
|
||||
9 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
||||
10 [label="Variable declaration: lval y: R|kotlin/Boolean|"];
|
||||
11 [label="Exit block"];
|
||||
}
|
||||
12 [label="Exit loop block"];
|
||||
5 [label="Enter loop condition"];
|
||||
6 [label="Access variable R|<local>/b|"];
|
||||
7 [label="Exit loop condition"];
|
||||
}
|
||||
13 [label="Exit while loop"];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
8 [label="Enter loop block"];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
9 [label="Enter block"];
|
||||
10 [label="Access variable R|<local>/x|"];
|
||||
11 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
||||
12 [label="Variable declaration: lval y: R|kotlin/Boolean|"];
|
||||
13 [label="Exit block"];
|
||||
}
|
||||
14 [label="Exit loop block"];
|
||||
}
|
||||
15 [label="Exit while loop"];
|
||||
}
|
||||
14 [label="Access variable R|<local>/x|"];
|
||||
15 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
||||
16 [label="Exit block"];
|
||||
16 [label="Access variable R|<local>/x|"];
|
||||
17 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
||||
18 [label="Exit block"];
|
||||
}
|
||||
17 [label="Exit function testWhile" style="filled" fillcolor=red];
|
||||
19 [label="Exit function testWhile" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1};
|
||||
1 -> {2};
|
||||
2 -> {3};
|
||||
3 -> {4};
|
||||
4 -> {5};
|
||||
5 -> {6 13};
|
||||
5 -> {6};
|
||||
6 -> {7};
|
||||
7 -> {8};
|
||||
7 -> {8 15};
|
||||
8 -> {9};
|
||||
9 -> {10};
|
||||
10 -> {11};
|
||||
11 -> {12};
|
||||
12 -> {3} [color=green style=dashed];
|
||||
12 -> {13};
|
||||
13 -> {14};
|
||||
14 -> {15};
|
||||
14 -> {5} [color=green style=dashed];
|
||||
15 -> {16};
|
||||
16 -> {17};
|
||||
|
||||
subgraph cluster_6 {
|
||||
color=red
|
||||
18 [label="Enter function testDoWhile" style="filled" fillcolor=red];
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
19 [label="Enter block"];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
20 [label="Enter do-while loop"];
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
21 [label="Enter loop block"];
|
||||
subgraph cluster_10 {
|
||||
color=blue
|
||||
22 [label="Enter block"];
|
||||
23 [label="Access variable R|<local>/x|"];
|
||||
24 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
||||
25 [label="Variable declaration: lval y: R|kotlin/Boolean|"];
|
||||
26 [label="Exit block"];
|
||||
}
|
||||
27 [label="Exit loop block"];
|
||||
}
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
28 [label="Enter loop condition"];
|
||||
29 [label="Access variable R|<local>/b|"];
|
||||
30 [label="Exit loop condition"];
|
||||
}
|
||||
31 [label="Exit do-while loop"];
|
||||
}
|
||||
32 [label="Access variable R|<local>/x|"];
|
||||
33 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
||||
34 [label="Exit block"];
|
||||
}
|
||||
35 [label="Exit function testDoWhile" style="filled" fillcolor=red];
|
||||
}
|
||||
17 -> {18};
|
||||
18 -> {19};
|
||||
19 -> {20};
|
||||
|
||||
subgraph cluster_7 {
|
||||
color=red
|
||||
20 [label="Enter function testDoWhile" style="filled" fillcolor=red];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
21 [label="Enter block"];
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
22 [label="Enter do-while loop"];
|
||||
subgraph cluster_10 {
|
||||
color=blue
|
||||
23 [label="Enter loop block"];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
24 [label="Enter block"];
|
||||
25 [label="Access variable R|<local>/x|"];
|
||||
26 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
||||
27 [label="Variable declaration: lval y: R|kotlin/Boolean|"];
|
||||
28 [label="Exit block"];
|
||||
}
|
||||
29 [label="Exit loop block"];
|
||||
}
|
||||
subgraph cluster_12 {
|
||||
color=blue
|
||||
30 [label="Enter loop condition"];
|
||||
31 [label="Access variable R|<local>/b|"];
|
||||
32 [label="Exit loop condition"];
|
||||
}
|
||||
33 [label="Exit do-while loop"];
|
||||
}
|
||||
34 [label="Access variable R|<local>/x|"];
|
||||
35 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
||||
36 [label="Exit block"];
|
||||
}
|
||||
37 [label="Exit function testDoWhile" style="filled" fillcolor=red];
|
||||
}
|
||||
20 -> {21};
|
||||
21 -> {22};
|
||||
22 -> {23};
|
||||
@@ -106,69 +111,69 @@ digraph loops_kt {
|
||||
28 -> {29};
|
||||
29 -> {30};
|
||||
30 -> {31};
|
||||
30 -> {21} [color=green style=dashed];
|
||||
31 -> {32};
|
||||
32 -> {33};
|
||||
32 -> {23} [color=green style=dashed];
|
||||
33 -> {34};
|
||||
34 -> {35};
|
||||
35 -> {36};
|
||||
36 -> {37};
|
||||
|
||||
subgraph cluster_12 {
|
||||
subgraph cluster_13 {
|
||||
color=red
|
||||
36 [label="Enter function testFor" style="filled" fillcolor=red];
|
||||
subgraph cluster_13 {
|
||||
38 [label="Enter function testFor" style="filled" fillcolor=red];
|
||||
subgraph cluster_14 {
|
||||
color=blue
|
||||
37 [label="Enter block"];
|
||||
subgraph cluster_14 {
|
||||
39 [label="Enter block"];
|
||||
subgraph cluster_15 {
|
||||
color=blue
|
||||
38 [label="Enter block"];
|
||||
39 [label="Const: Int(0)"];
|
||||
40 [label="Const: Int(5)"];
|
||||
41 [label="Function call: Int(0).R|kotlin/Int.rangeTo|(...)" style="filled" fillcolor=yellow];
|
||||
42 [label="Function call: Int(0).R|kotlin/Int.rangeTo|(...).R|kotlin/ranges/IntProgression.iterator|()" style="filled" fillcolor=yellow];
|
||||
43 [label="Variable declaration: lval <iterator>: R|kotlin/collections/IntIterator|"];
|
||||
subgraph cluster_15 {
|
||||
40 [label="Enter block"];
|
||||
41 [label="Const: Int(0)"];
|
||||
42 [label="Const: Int(5)"];
|
||||
43 [label="Function call: Int(0).R|kotlin/Int.rangeTo|(...)" style="filled" fillcolor=yellow];
|
||||
44 [label="Function call: Int(0).R|kotlin/Int.rangeTo|(...).R|kotlin/ranges/IntProgression.iterator|()" style="filled" fillcolor=yellow];
|
||||
45 [label="Variable declaration: lval <iterator>: R|kotlin/collections/IntIterator|"];
|
||||
subgraph cluster_16 {
|
||||
color=blue
|
||||
44 [label="Enter while loop"];
|
||||
subgraph cluster_16 {
|
||||
color=blue
|
||||
45 [label="Enter loop condition"];
|
||||
46 [label="Access variable R|<local>/<iterator>|"];
|
||||
47 [label="Function call: R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/IntIterator.hasNext: R|kotlin/Boolean|>|()" style="filled" fillcolor=yellow];
|
||||
48 [label="Exit loop condition"];
|
||||
}
|
||||
46 [label="Enter while loop"];
|
||||
subgraph cluster_17 {
|
||||
color=blue
|
||||
49 [label="Enter loop block"];
|
||||
subgraph cluster_18 {
|
||||
color=blue
|
||||
50 [label="Enter block"];
|
||||
51 [label="Access variable R|<local>/<iterator>|"];
|
||||
52 [label="Function call: R|<local>/<iterator>|.R|kotlin/collections/IntIterator.next|()" style="filled" fillcolor=yellow];
|
||||
53 [label="Variable declaration: lval i: R|kotlin/Int|"];
|
||||
subgraph cluster_19 {
|
||||
color=blue
|
||||
54 [label="Enter block"];
|
||||
55 [label="Access variable R|<local>/x|"];
|
||||
56 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
||||
57 [label="Variable declaration: lval y: R|kotlin/Boolean|"];
|
||||
58 [label="Exit block"];
|
||||
}
|
||||
59 [label="Exit block"];
|
||||
}
|
||||
60 [label="Exit loop block"];
|
||||
47 [label="Enter loop condition"];
|
||||
48 [label="Access variable R|<local>/<iterator>|"];
|
||||
49 [label="Function call: R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/IntIterator.hasNext: R|kotlin/Boolean|>|()" style="filled" fillcolor=yellow];
|
||||
50 [label="Exit loop condition"];
|
||||
}
|
||||
61 [label="Exit while loop"];
|
||||
subgraph cluster_18 {
|
||||
color=blue
|
||||
51 [label="Enter loop block"];
|
||||
subgraph cluster_19 {
|
||||
color=blue
|
||||
52 [label="Enter block"];
|
||||
53 [label="Access variable R|<local>/<iterator>|"];
|
||||
54 [label="Function call: R|<local>/<iterator>|.R|kotlin/collections/IntIterator.next|()" style="filled" fillcolor=yellow];
|
||||
55 [label="Variable declaration: lval i: R|kotlin/Int|"];
|
||||
subgraph cluster_20 {
|
||||
color=blue
|
||||
56 [label="Enter block"];
|
||||
57 [label="Access variable R|<local>/x|"];
|
||||
58 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
||||
59 [label="Variable declaration: lval y: R|kotlin/Boolean|"];
|
||||
60 [label="Exit block"];
|
||||
}
|
||||
61 [label="Exit block"];
|
||||
}
|
||||
62 [label="Exit loop block"];
|
||||
}
|
||||
63 [label="Exit while loop"];
|
||||
}
|
||||
62 [label="Exit block"];
|
||||
64 [label="Exit block"];
|
||||
}
|
||||
63 [label="Access variable R|<local>/x|"];
|
||||
64 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
||||
65 [label="Exit block"];
|
||||
65 [label="Access variable R|<local>/x|"];
|
||||
66 [label="Type operator: (R|<local>/x| is R|kotlin/String|)"];
|
||||
67 [label="Exit block"];
|
||||
}
|
||||
66 [label="Exit function testFor" style="filled" fillcolor=red];
|
||||
68 [label="Exit function testFor" style="filled" fillcolor=red];
|
||||
}
|
||||
36 -> {37};
|
||||
37 -> {38};
|
||||
38 -> {39};
|
||||
39 -> {40};
|
||||
40 -> {41};
|
||||
@@ -179,9 +184,9 @@ digraph loops_kt {
|
||||
45 -> {46};
|
||||
46 -> {47};
|
||||
47 -> {48};
|
||||
48 -> {49 61};
|
||||
48 -> {49};
|
||||
49 -> {50};
|
||||
50 -> {51};
|
||||
50 -> {51 63};
|
||||
51 -> {52};
|
||||
52 -> {53};
|
||||
53 -> {54};
|
||||
@@ -191,227 +196,227 @@ digraph loops_kt {
|
||||
57 -> {58};
|
||||
58 -> {59};
|
||||
59 -> {60};
|
||||
60 -> {45} [color=green style=dashed];
|
||||
60 -> {61};
|
||||
61 -> {62};
|
||||
62 -> {63};
|
||||
62 -> {47} [color=green style=dashed];
|
||||
63 -> {64};
|
||||
64 -> {65};
|
||||
65 -> {66};
|
||||
66 -> {67};
|
||||
67 -> {68};
|
||||
|
||||
subgraph cluster_20 {
|
||||
subgraph cluster_21 {
|
||||
color=red
|
||||
67 [label="Enter function testWhileTrue" style="filled" fillcolor=red];
|
||||
subgraph cluster_21 {
|
||||
69 [label="Enter function testWhileTrue" style="filled" fillcolor=red];
|
||||
subgraph cluster_22 {
|
||||
color=blue
|
||||
68 [label="Enter block"];
|
||||
subgraph cluster_22 {
|
||||
70 [label="Enter block"];
|
||||
subgraph cluster_23 {
|
||||
color=blue
|
||||
69 [label="Enter while loop"];
|
||||
subgraph cluster_23 {
|
||||
color=blue
|
||||
70 [label="Enter loop condition"];
|
||||
71 [label="Const: Boolean(true)"];
|
||||
72 [label="Exit loop condition"];
|
||||
}
|
||||
71 [label="Enter while loop"];
|
||||
subgraph cluster_24 {
|
||||
color=blue
|
||||
73 [label="Enter loop block"];
|
||||
subgraph cluster_25 {
|
||||
color=blue
|
||||
74 [label="Enter block"];
|
||||
75 [label="Const: Int(1)"];
|
||||
76 [label="Exit block"];
|
||||
}
|
||||
77 [label="Exit loop block"];
|
||||
72 [label="Enter loop condition"];
|
||||
73 [label="Const: Boolean(true)"];
|
||||
74 [label="Exit loop condition"];
|
||||
}
|
||||
78 [label="Exit while loop" style="filled" fillcolor=gray];
|
||||
subgraph cluster_25 {
|
||||
color=blue
|
||||
75 [label="Enter loop block"];
|
||||
subgraph cluster_26 {
|
||||
color=blue
|
||||
76 [label="Enter block"];
|
||||
77 [label="Const: Int(1)"];
|
||||
78 [label="Exit block"];
|
||||
}
|
||||
79 [label="Exit loop block"];
|
||||
}
|
||||
80 [label="Exit while loop" style="filled" fillcolor=gray];
|
||||
}
|
||||
79 [label="Const: Int(1)" style="filled" fillcolor=gray];
|
||||
80 [label="Exit block" style="filled" fillcolor=gray];
|
||||
81 [label="Const: Int(1)" style="filled" fillcolor=gray];
|
||||
82 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
81 [label="Exit function testWhileTrue" style="filled" fillcolor=gray];
|
||||
83 [label="Exit function testWhileTrue" style="filled" fillcolor=gray];
|
||||
}
|
||||
67 -> {68};
|
||||
68 -> {69};
|
||||
69 -> {70};
|
||||
70 -> {71};
|
||||
71 -> {72};
|
||||
72 -> {73};
|
||||
72 -> {78} [style=dotted];
|
||||
73 -> {74};
|
||||
74 -> {75};
|
||||
74 -> {80} [style=dotted];
|
||||
75 -> {76};
|
||||
76 -> {77};
|
||||
77 -> {70} [color=green style=dashed];
|
||||
78 -> {79} [style=dotted];
|
||||
79 -> {80} [style=dotted];
|
||||
77 -> {78};
|
||||
78 -> {79};
|
||||
79 -> {72} [color=green style=dashed];
|
||||
80 -> {81} [style=dotted];
|
||||
81 -> {82} [style=dotted];
|
||||
82 -> {83} [style=dotted];
|
||||
|
||||
subgraph cluster_26 {
|
||||
subgraph cluster_27 {
|
||||
color=red
|
||||
82 [label="Enter function testWhileTrueWithBreak" style="filled" fillcolor=red];
|
||||
subgraph cluster_27 {
|
||||
84 [label="Enter function testWhileTrueWithBreak" style="filled" fillcolor=red];
|
||||
subgraph cluster_28 {
|
||||
color=blue
|
||||
83 [label="Enter block"];
|
||||
subgraph cluster_28 {
|
||||
85 [label="Enter block"];
|
||||
subgraph cluster_29 {
|
||||
color=blue
|
||||
84 [label="Enter while loop"];
|
||||
subgraph cluster_29 {
|
||||
color=blue
|
||||
85 [label="Enter loop condition"];
|
||||
86 [label="Const: Boolean(true)"];
|
||||
87 [label="Exit loop condition"];
|
||||
}
|
||||
86 [label="Enter while loop"];
|
||||
subgraph cluster_30 {
|
||||
color=blue
|
||||
88 [label="Enter loop block"];
|
||||
subgraph cluster_31 {
|
||||
87 [label="Enter loop condition"];
|
||||
88 [label="Const: Boolean(true)"];
|
||||
89 [label="Exit loop condition"];
|
||||
}
|
||||
subgraph cluster_31 {
|
||||
color=blue
|
||||
90 [label="Enter loop block"];
|
||||
subgraph cluster_32 {
|
||||
color=blue
|
||||
89 [label="Enter block"];
|
||||
subgraph cluster_32 {
|
||||
91 [label="Enter block"];
|
||||
subgraph cluster_33 {
|
||||
color=blue
|
||||
90 [label="Enter when"];
|
||||
subgraph cluster_33 {
|
||||
color=blue
|
||||
91 [label="Enter when branch condition "];
|
||||
92 [label="Access variable R|<local>/b|"];
|
||||
93 [label="Exit when branch condition"];
|
||||
}
|
||||
94 [label="Synthetic else branch"];
|
||||
95 [label="Enter when branch result"];
|
||||
92 [label="Enter when"];
|
||||
subgraph cluster_34 {
|
||||
color=blue
|
||||
96 [label="Enter block"];
|
||||
97 [label="Jump: break@@@[Boolean(true)] "];
|
||||
98 [label="Stub" style="filled" fillcolor=gray];
|
||||
99 [label="Exit block" style="filled" fillcolor=gray];
|
||||
93 [label="Enter when branch condition "];
|
||||
94 [label="Access variable R|<local>/b|"];
|
||||
95 [label="Exit when branch condition"];
|
||||
}
|
||||
100 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
101 [label="Exit when"];
|
||||
96 [label="Synthetic else branch"];
|
||||
97 [label="Enter when branch result"];
|
||||
subgraph cluster_35 {
|
||||
color=blue
|
||||
98 [label="Enter block"];
|
||||
99 [label="Jump: break@@@[Boolean(true)] "];
|
||||
100 [label="Stub" style="filled" fillcolor=gray];
|
||||
101 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
102 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
103 [label="Exit when"];
|
||||
}
|
||||
102 [label="Exit block"];
|
||||
104 [label="Exit block"];
|
||||
}
|
||||
103 [label="Exit loop block"];
|
||||
105 [label="Exit loop block"];
|
||||
}
|
||||
104 [label="Exit while loop"];
|
||||
106 [label="Exit while loop"];
|
||||
}
|
||||
105 [label="Const: Int(1)"];
|
||||
106 [label="Exit block"];
|
||||
107 [label="Const: Int(1)"];
|
||||
108 [label="Exit block"];
|
||||
}
|
||||
107 [label="Exit function testWhileTrueWithBreak" style="filled" fillcolor=red];
|
||||
109 [label="Exit function testWhileTrueWithBreak" style="filled" fillcolor=red];
|
||||
}
|
||||
82 -> {83};
|
||||
83 -> {84};
|
||||
84 -> {85};
|
||||
85 -> {86};
|
||||
86 -> {87};
|
||||
87 -> {88};
|
||||
87 -> {104} [style=dotted];
|
||||
88 -> {89};
|
||||
89 -> {90};
|
||||
89 -> {106} [style=dotted];
|
||||
90 -> {91};
|
||||
91 -> {92};
|
||||
92 -> {93};
|
||||
93 -> {94 95};
|
||||
94 -> {101};
|
||||
95 -> {96};
|
||||
96 -> {97};
|
||||
97 -> {104};
|
||||
97 -> {98} [style=dotted];
|
||||
98 -> {99} [style=dotted];
|
||||
93 -> {94};
|
||||
94 -> {95};
|
||||
95 -> {96 97};
|
||||
96 -> {103};
|
||||
97 -> {98};
|
||||
98 -> {99};
|
||||
99 -> {106};
|
||||
99 -> {100} [style=dotted];
|
||||
100 -> {101} [style=dotted];
|
||||
101 -> {102};
|
||||
102 -> {103};
|
||||
103 -> {85} [color=green style=dashed];
|
||||
101 -> {102} [style=dotted];
|
||||
102 -> {103} [style=dotted];
|
||||
103 -> {104};
|
||||
104 -> {105};
|
||||
105 -> {106};
|
||||
105 -> {87} [color=green style=dashed];
|
||||
106 -> {107};
|
||||
107 -> {108};
|
||||
108 -> {109};
|
||||
|
||||
subgraph cluster_35 {
|
||||
subgraph cluster_36 {
|
||||
color=red
|
||||
108 [label="Enter function testWhileFalse" style="filled" fillcolor=red];
|
||||
subgraph cluster_36 {
|
||||
110 [label="Enter function testWhileFalse" style="filled" fillcolor=red];
|
||||
subgraph cluster_37 {
|
||||
color=blue
|
||||
109 [label="Enter block"];
|
||||
subgraph cluster_37 {
|
||||
111 [label="Enter block"];
|
||||
subgraph cluster_38 {
|
||||
color=blue
|
||||
110 [label="Enter while loop"];
|
||||
subgraph cluster_38 {
|
||||
color=blue
|
||||
111 [label="Enter loop condition"];
|
||||
112 [label="Const: Boolean(false)"];
|
||||
113 [label="Exit loop condition"];
|
||||
}
|
||||
112 [label="Enter while loop"];
|
||||
subgraph cluster_39 {
|
||||
color=blue
|
||||
114 [label="Enter loop block" style="filled" fillcolor=gray];
|
||||
subgraph cluster_40 {
|
||||
color=blue
|
||||
115 [label="Enter block" style="filled" fillcolor=gray];
|
||||
116 [label="Const: Int(1)" style="filled" fillcolor=gray];
|
||||
117 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
118 [label="Exit loop block" style="filled" fillcolor=gray];
|
||||
113 [label="Enter loop condition"];
|
||||
114 [label="Const: Boolean(false)"];
|
||||
115 [label="Exit loop condition"];
|
||||
}
|
||||
119 [label="Exit while loop"];
|
||||
subgraph cluster_40 {
|
||||
color=blue
|
||||
116 [label="Enter loop block" style="filled" fillcolor=gray];
|
||||
subgraph cluster_41 {
|
||||
color=blue
|
||||
117 [label="Enter block" style="filled" fillcolor=gray];
|
||||
118 [label="Const: Int(1)" style="filled" fillcolor=gray];
|
||||
119 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
120 [label="Exit loop block" style="filled" fillcolor=gray];
|
||||
}
|
||||
121 [label="Exit while loop"];
|
||||
}
|
||||
120 [label="Const: Int(1)"];
|
||||
121 [label="Exit block"];
|
||||
122 [label="Const: Int(1)"];
|
||||
123 [label="Exit block"];
|
||||
}
|
||||
122 [label="Exit function testWhileFalse" style="filled" fillcolor=red];
|
||||
124 [label="Exit function testWhileFalse" style="filled" fillcolor=red];
|
||||
}
|
||||
108 -> {109};
|
||||
109 -> {110};
|
||||
110 -> {111};
|
||||
111 -> {112};
|
||||
112 -> {113};
|
||||
113 -> {119};
|
||||
113 -> {114} [style=dotted];
|
||||
114 -> {115} [style=dotted];
|
||||
113 -> {114};
|
||||
114 -> {115};
|
||||
115 -> {121};
|
||||
115 -> {116} [style=dotted];
|
||||
116 -> {117} [style=dotted];
|
||||
117 -> {118} [style=dotted];
|
||||
118 -> {111} [color=green style=dotted];
|
||||
119 -> {120};
|
||||
120 -> {121};
|
||||
118 -> {119} [style=dotted];
|
||||
119 -> {120} [style=dotted];
|
||||
120 -> {113} [color=green style=dotted];
|
||||
121 -> {122};
|
||||
|
||||
subgraph cluster_41 {
|
||||
color=red
|
||||
123 [label="Enter function testDoWhileTrue" style="filled" fillcolor=red];
|
||||
subgraph cluster_42 {
|
||||
color=blue
|
||||
124 [label="Enter block"];
|
||||
subgraph cluster_43 {
|
||||
color=blue
|
||||
125 [label="Enter do-while loop"];
|
||||
subgraph cluster_44 {
|
||||
color=blue
|
||||
126 [label="Enter loop block"];
|
||||
subgraph cluster_45 {
|
||||
color=blue
|
||||
127 [label="Enter block"];
|
||||
128 [label="Const: Int(1)"];
|
||||
129 [label="Exit block"];
|
||||
}
|
||||
130 [label="Exit loop block"];
|
||||
}
|
||||
subgraph cluster_46 {
|
||||
color=blue
|
||||
131 [label="Enter loop condition"];
|
||||
132 [label="Const: Boolean(true)"];
|
||||
133 [label="Exit loop condition"];
|
||||
}
|
||||
134 [label="Exit do-while loop" style="filled" fillcolor=gray];
|
||||
}
|
||||
135 [label="Const: Int(1)" style="filled" fillcolor=gray];
|
||||
136 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
137 [label="Exit function testDoWhileTrue" style="filled" fillcolor=gray];
|
||||
}
|
||||
122 -> {123};
|
||||
123 -> {124};
|
||||
124 -> {125};
|
||||
|
||||
subgraph cluster_42 {
|
||||
color=red
|
||||
125 [label="Enter function testDoWhileTrue" style="filled" fillcolor=red];
|
||||
subgraph cluster_43 {
|
||||
color=blue
|
||||
126 [label="Enter block"];
|
||||
subgraph cluster_44 {
|
||||
color=blue
|
||||
127 [label="Enter do-while loop"];
|
||||
subgraph cluster_45 {
|
||||
color=blue
|
||||
128 [label="Enter loop block"];
|
||||
subgraph cluster_46 {
|
||||
color=blue
|
||||
129 [label="Enter block"];
|
||||
130 [label="Const: Int(1)"];
|
||||
131 [label="Exit block"];
|
||||
}
|
||||
132 [label="Exit loop block"];
|
||||
}
|
||||
subgraph cluster_47 {
|
||||
color=blue
|
||||
133 [label="Enter loop condition"];
|
||||
134 [label="Const: Boolean(true)"];
|
||||
135 [label="Exit loop condition"];
|
||||
}
|
||||
136 [label="Exit do-while loop" style="filled" fillcolor=gray];
|
||||
}
|
||||
137 [label="Const: Int(1)" style="filled" fillcolor=gray];
|
||||
138 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
139 [label="Exit function testDoWhileTrue" style="filled" fillcolor=gray];
|
||||
}
|
||||
125 -> {126};
|
||||
126 -> {127};
|
||||
127 -> {128};
|
||||
@@ -420,128 +425,128 @@ digraph loops_kt {
|
||||
130 -> {131};
|
||||
131 -> {132};
|
||||
132 -> {133};
|
||||
133 -> {126} [color=green style=dashed];
|
||||
133 -> {134} [style=dotted];
|
||||
134 -> {135} [style=dotted];
|
||||
133 -> {134};
|
||||
134 -> {135};
|
||||
135 -> {128} [color=green style=dashed];
|
||||
135 -> {136} [style=dotted];
|
||||
136 -> {137} [style=dotted];
|
||||
137 -> {138} [style=dotted];
|
||||
138 -> {139} [style=dotted];
|
||||
|
||||
subgraph cluster_47 {
|
||||
subgraph cluster_48 {
|
||||
color=red
|
||||
138 [label="Enter function testDoWhileTrueWithBreak" style="filled" fillcolor=red];
|
||||
subgraph cluster_48 {
|
||||
140 [label="Enter function testDoWhileTrueWithBreak" style="filled" fillcolor=red];
|
||||
subgraph cluster_49 {
|
||||
color=blue
|
||||
139 [label="Enter block"];
|
||||
subgraph cluster_49 {
|
||||
141 [label="Enter block"];
|
||||
subgraph cluster_50 {
|
||||
color=blue
|
||||
140 [label="Enter do-while loop"];
|
||||
subgraph cluster_50 {
|
||||
142 [label="Enter do-while loop"];
|
||||
subgraph cluster_51 {
|
||||
color=blue
|
||||
141 [label="Enter loop block"];
|
||||
subgraph cluster_51 {
|
||||
143 [label="Enter loop block"];
|
||||
subgraph cluster_52 {
|
||||
color=blue
|
||||
142 [label="Enter block"];
|
||||
subgraph cluster_52 {
|
||||
144 [label="Enter block"];
|
||||
subgraph cluster_53 {
|
||||
color=blue
|
||||
143 [label="Enter when"];
|
||||
subgraph cluster_53 {
|
||||
color=blue
|
||||
144 [label="Enter when branch condition "];
|
||||
145 [label="Access variable R|<local>/b|"];
|
||||
146 [label="Exit when branch condition"];
|
||||
}
|
||||
147 [label="Synthetic else branch"];
|
||||
148 [label="Enter when branch result"];
|
||||
145 [label="Enter when"];
|
||||
subgraph cluster_54 {
|
||||
color=blue
|
||||
149 [label="Enter block"];
|
||||
150 [label="Jump: break@@@[Boolean(true)] "];
|
||||
151 [label="Stub" style="filled" fillcolor=gray];
|
||||
152 [label="Exit block" style="filled" fillcolor=gray];
|
||||
146 [label="Enter when branch condition "];
|
||||
147 [label="Access variable R|<local>/b|"];
|
||||
148 [label="Exit when branch condition"];
|
||||
}
|
||||
153 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
154 [label="Exit when"];
|
||||
149 [label="Synthetic else branch"];
|
||||
150 [label="Enter when branch result"];
|
||||
subgraph cluster_55 {
|
||||
color=blue
|
||||
151 [label="Enter block"];
|
||||
152 [label="Jump: break@@@[Boolean(true)] "];
|
||||
153 [label="Stub" style="filled" fillcolor=gray];
|
||||
154 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
155 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
156 [label="Exit when"];
|
||||
}
|
||||
155 [label="Exit block"];
|
||||
157 [label="Exit block"];
|
||||
}
|
||||
156 [label="Exit loop block"];
|
||||
158 [label="Exit loop block"];
|
||||
}
|
||||
subgraph cluster_55 {
|
||||
subgraph cluster_56 {
|
||||
color=blue
|
||||
157 [label="Enter loop condition"];
|
||||
158 [label="Const: Boolean(true)"];
|
||||
159 [label="Exit loop condition"];
|
||||
159 [label="Enter loop condition"];
|
||||
160 [label="Const: Boolean(true)"];
|
||||
161 [label="Exit loop condition"];
|
||||
}
|
||||
160 [label="Exit do-while loop"];
|
||||
162 [label="Exit do-while loop"];
|
||||
}
|
||||
161 [label="Const: Int(1)"];
|
||||
162 [label="Exit block"];
|
||||
163 [label="Const: Int(1)"];
|
||||
164 [label="Exit block"];
|
||||
}
|
||||
163 [label="Exit function testDoWhileTrueWithBreak" style="filled" fillcolor=red];
|
||||
165 [label="Exit function testDoWhileTrueWithBreak" style="filled" fillcolor=red];
|
||||
}
|
||||
138 -> {139};
|
||||
139 -> {140};
|
||||
140 -> {141};
|
||||
141 -> {142};
|
||||
142 -> {143};
|
||||
143 -> {144};
|
||||
144 -> {145};
|
||||
145 -> {146};
|
||||
146 -> {147 148};
|
||||
147 -> {154};
|
||||
148 -> {149};
|
||||
149 -> {150};
|
||||
150 -> {160};
|
||||
150 -> {151} [style=dotted];
|
||||
151 -> {152} [style=dotted];
|
||||
146 -> {147};
|
||||
147 -> {148};
|
||||
148 -> {149 150};
|
||||
149 -> {156};
|
||||
150 -> {151};
|
||||
151 -> {152};
|
||||
152 -> {162};
|
||||
152 -> {153} [style=dotted];
|
||||
153 -> {154} [style=dotted];
|
||||
154 -> {155};
|
||||
155 -> {156};
|
||||
154 -> {155} [style=dotted];
|
||||
155 -> {156} [style=dotted];
|
||||
156 -> {157};
|
||||
157 -> {158};
|
||||
158 -> {159};
|
||||
159 -> {141} [color=green style=dashed];
|
||||
159 -> {160} [style=dotted];
|
||||
159 -> {160};
|
||||
160 -> {161};
|
||||
161 -> {162};
|
||||
161 -> {143} [color=green style=dashed];
|
||||
161 -> {162} [style=dotted];
|
||||
162 -> {163};
|
||||
|
||||
subgraph cluster_56 {
|
||||
color=red
|
||||
164 [label="Enter function testDoWhileFalse" style="filled" fillcolor=red];
|
||||
subgraph cluster_57 {
|
||||
color=blue
|
||||
165 [label="Enter block"];
|
||||
subgraph cluster_58 {
|
||||
color=blue
|
||||
166 [label="Enter do-while loop"];
|
||||
subgraph cluster_59 {
|
||||
color=blue
|
||||
167 [label="Enter loop block"];
|
||||
subgraph cluster_60 {
|
||||
color=blue
|
||||
168 [label="Enter block"];
|
||||
169 [label="Const: Int(1)"];
|
||||
170 [label="Exit block"];
|
||||
}
|
||||
171 [label="Exit loop block"];
|
||||
}
|
||||
subgraph cluster_61 {
|
||||
color=blue
|
||||
172 [label="Enter loop condition"];
|
||||
173 [label="Const: Boolean(false)"];
|
||||
174 [label="Exit loop condition"];
|
||||
}
|
||||
175 [label="Exit do-while loop"];
|
||||
}
|
||||
176 [label="Const: Int(1)"];
|
||||
177 [label="Exit block"];
|
||||
}
|
||||
178 [label="Exit function testDoWhileFalse" style="filled" fillcolor=red];
|
||||
}
|
||||
163 -> {164};
|
||||
164 -> {165};
|
||||
165 -> {166};
|
||||
|
||||
subgraph cluster_57 {
|
||||
color=red
|
||||
166 [label="Enter function testDoWhileFalse" style="filled" fillcolor=red];
|
||||
subgraph cluster_58 {
|
||||
color=blue
|
||||
167 [label="Enter block"];
|
||||
subgraph cluster_59 {
|
||||
color=blue
|
||||
168 [label="Enter do-while loop"];
|
||||
subgraph cluster_60 {
|
||||
color=blue
|
||||
169 [label="Enter loop block"];
|
||||
subgraph cluster_61 {
|
||||
color=blue
|
||||
170 [label="Enter block"];
|
||||
171 [label="Const: Int(1)"];
|
||||
172 [label="Exit block"];
|
||||
}
|
||||
173 [label="Exit loop block"];
|
||||
}
|
||||
subgraph cluster_62 {
|
||||
color=blue
|
||||
174 [label="Enter loop condition"];
|
||||
175 [label="Const: Boolean(false)"];
|
||||
176 [label="Exit loop condition"];
|
||||
}
|
||||
177 [label="Exit do-while loop"];
|
||||
}
|
||||
178 [label="Const: Int(1)"];
|
||||
179 [label="Exit block"];
|
||||
}
|
||||
180 [label="Exit function testDoWhileFalse" style="filled" fillcolor=red];
|
||||
}
|
||||
166 -> {167};
|
||||
167 -> {168};
|
||||
168 -> {169};
|
||||
@@ -551,9 +556,11 @@ digraph loops_kt {
|
||||
172 -> {173};
|
||||
173 -> {174};
|
||||
174 -> {175};
|
||||
174 -> {167} [color=green style=dotted];
|
||||
175 -> {176};
|
||||
176 -> {177};
|
||||
176 -> {169} [color=green style=dotted];
|
||||
177 -> {178};
|
||||
178 -> {179};
|
||||
179 -> {180};
|
||||
|
||||
}
|
||||
|
||||
@@ -5,102 +5,109 @@ digraph nestedClass_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter class OuterClass" style="filled" fillcolor=red];
|
||||
subgraph cluster_1 {
|
||||
color=blue
|
||||
1 [label="Enter property" style="filled" fillcolor=red];
|
||||
2 [label="Const: Int(1)"];
|
||||
3 [label="Exit property" style="filled" fillcolor=red];
|
||||
}
|
||||
0 [label="Enter file nestedClass.kt" style="filled" fillcolor=red];
|
||||
1 [label="Exit file nestedClass.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1} [color=green];
|
||||
|
||||
subgraph cluster_1 {
|
||||
color=red
|
||||
2 [label="Enter class OuterClass" style="filled" fillcolor=red];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
4 [label="Enter property" style="filled" fillcolor=red];
|
||||
5 [label="Access variable R|/OuterClass.outerProperty|"];
|
||||
6 [label="Exit property" style="filled" fillcolor=red];
|
||||
3 [label="Enter property" style="filled" fillcolor=red];
|
||||
4 [label="Const: Int(1)"];
|
||||
5 [label="Exit property" style="filled" fillcolor=red];
|
||||
}
|
||||
subgraph cluster_3 {
|
||||
color=blue
|
||||
7 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
8 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
9 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
6 [label="Enter property" style="filled" fillcolor=red];
|
||||
7 [label="Access variable R|/OuterClass.outerProperty|"];
|
||||
8 [label="Exit property" style="filled" fillcolor=red];
|
||||
}
|
||||
10 [label="Exit class OuterClass" style="filled" fillcolor=red];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
9 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
10 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
11 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
}
|
||||
12 [label="Exit class OuterClass" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1} [color=green];
|
||||
0 -> {10} [style=dotted];
|
||||
0 -> {1 4 7} [style=dashed];
|
||||
1 -> {2};
|
||||
2 -> {3};
|
||||
3 -> {4} [color=green];
|
||||
2 -> {3} [color=green];
|
||||
2 -> {12} [style=dotted];
|
||||
2 -> {3 6 9} [style=dashed];
|
||||
3 -> {4};
|
||||
4 -> {5};
|
||||
5 -> {6};
|
||||
6 -> {7} [color=green];
|
||||
5 -> {6} [color=green];
|
||||
6 -> {7};
|
||||
7 -> {8};
|
||||
8 -> {9};
|
||||
9 -> {10} [color=green];
|
||||
8 -> {9} [color=green];
|
||||
9 -> {10};
|
||||
10 -> {11};
|
||||
11 -> {12} [color=green];
|
||||
|
||||
subgraph cluster_4 {
|
||||
subgraph cluster_5 {
|
||||
color=red
|
||||
11 [label="Enter function outerFunction" style="filled" fillcolor=red];
|
||||
subgraph cluster_5 {
|
||||
13 [label="Enter function outerFunction" style="filled" fillcolor=red];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
12 [label="Enter block"];
|
||||
13 [label="Exit block"];
|
||||
14 [label="Enter block"];
|
||||
15 [label="Exit block"];
|
||||
}
|
||||
14 [label="Exit function outerFunction" style="filled" fillcolor=red];
|
||||
16 [label="Exit function outerFunction" style="filled" fillcolor=red];
|
||||
}
|
||||
11 -> {12};
|
||||
12 -> {13};
|
||||
13 -> {14};
|
||||
14 -> {15};
|
||||
15 -> {16};
|
||||
|
||||
subgraph cluster_6 {
|
||||
subgraph cluster_7 {
|
||||
color=red
|
||||
15 [label="Enter class NestedClass" style="filled" fillcolor=red];
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
16 [label="Enter property" style="filled" fillcolor=red];
|
||||
17 [label="Const: Int(1)"];
|
||||
18 [label="Exit property" style="filled" fillcolor=red];
|
||||
}
|
||||
17 [label="Enter class NestedClass" style="filled" fillcolor=red];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
19 [label="Enter property" style="filled" fillcolor=red];
|
||||
20 [label="Access variable R|/OuterClass.NestedClass.nestedProperty|"];
|
||||
21 [label="Exit property" style="filled" fillcolor=red];
|
||||
18 [label="Enter property" style="filled" fillcolor=red];
|
||||
19 [label="Const: Int(1)"];
|
||||
20 [label="Exit property" style="filled" fillcolor=red];
|
||||
}
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
22 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
23 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
24 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
21 [label="Enter property" style="filled" fillcolor=red];
|
||||
22 [label="Access variable R|/OuterClass.NestedClass.nestedProperty|"];
|
||||
23 [label="Exit property" style="filled" fillcolor=red];
|
||||
}
|
||||
25 [label="Exit class NestedClass" style="filled" fillcolor=red];
|
||||
}
|
||||
15 -> {16} [color=green];
|
||||
15 -> {25} [style=dotted];
|
||||
15 -> {16 19 22} [style=dashed];
|
||||
16 -> {17};
|
||||
17 -> {18};
|
||||
18 -> {19} [color=green];
|
||||
19 -> {20};
|
||||
20 -> {21};
|
||||
21 -> {22} [color=green];
|
||||
22 -> {23};
|
||||
23 -> {24};
|
||||
24 -> {25} [color=green];
|
||||
|
||||
subgraph cluster_10 {
|
||||
color=red
|
||||
26 [label="Enter function nestedFUnction" style="filled" fillcolor=red];
|
||||
subgraph cluster_11 {
|
||||
subgraph cluster_10 {
|
||||
color=blue
|
||||
27 [label="Enter block"];
|
||||
28 [label="Exit block"];
|
||||
24 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
25 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
26 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
}
|
||||
29 [label="Exit function nestedFUnction" style="filled" fillcolor=red];
|
||||
27 [label="Exit class NestedClass" style="filled" fillcolor=red];
|
||||
}
|
||||
17 -> {18} [color=green];
|
||||
17 -> {27} [style=dotted];
|
||||
17 -> {18 21 24} [style=dashed];
|
||||
18 -> {19};
|
||||
19 -> {20};
|
||||
20 -> {21} [color=green];
|
||||
21 -> {22};
|
||||
22 -> {23};
|
||||
23 -> {24} [color=green];
|
||||
24 -> {25};
|
||||
25 -> {26};
|
||||
26 -> {27} [color=green];
|
||||
|
||||
subgraph cluster_11 {
|
||||
color=red
|
||||
28 [label="Enter function nestedFUnction" style="filled" fillcolor=red];
|
||||
subgraph cluster_12 {
|
||||
color=blue
|
||||
29 [label="Enter block"];
|
||||
30 [label="Exit block"];
|
||||
}
|
||||
31 [label="Exit function nestedFUnction" style="filled" fillcolor=red];
|
||||
}
|
||||
26 -> {27};
|
||||
27 -> {28};
|
||||
28 -> {29};
|
||||
29 -> {30};
|
||||
30 -> {31};
|
||||
|
||||
}
|
||||
|
||||
+84
-77
@@ -5,106 +5,113 @@ digraph postponedLambdaInConstructor_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter class A" style="filled" fillcolor=red];
|
||||
subgraph cluster_1 {
|
||||
color=blue
|
||||
1 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
2 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
3 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
}
|
||||
4 [label="Exit class A" style="filled" fillcolor=red];
|
||||
0 [label="Enter file postponedLambdaInConstructor.kt" style="filled" fillcolor=red];
|
||||
1 [label="Exit file postponedLambdaInConstructor.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1} [color=green];
|
||||
0 -> {4} [style=dotted];
|
||||
0 -> {1} [style=dashed];
|
||||
1 -> {2};
|
||||
2 -> {3};
|
||||
3 -> {4} [color=green];
|
||||
|
||||
subgraph cluster_2 {
|
||||
subgraph cluster_1 {
|
||||
color=red
|
||||
5 [label="Enter class B" style="filled" fillcolor=red];
|
||||
subgraph cluster_3 {
|
||||
2 [label="Enter class A" style="filled" fillcolor=red];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
6 [label="Enter property" style="filled" fillcolor=red];
|
||||
7 [label="Access variable R|<local>/s|"];
|
||||
8 [label="Exit property" style="filled" fillcolor=red];
|
||||
3 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
4 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
5 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
}
|
||||
6 [label="Exit class A" style="filled" fillcolor=red];
|
||||
}
|
||||
2 -> {3} [color=green];
|
||||
2 -> {6} [style=dotted];
|
||||
2 -> {3} [style=dashed];
|
||||
3 -> {4};
|
||||
4 -> {5};
|
||||
5 -> {6} [color=green];
|
||||
|
||||
subgraph cluster_3 {
|
||||
color=red
|
||||
7 [label="Enter class B" style="filled" fillcolor=red];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
9 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
10 [label="Access variable R|<local>/s|"];
|
||||
11 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
12 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
13 [label="Enter block"];
|
||||
14 [label="Exit anonymous function expression"];
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
15 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
16 [label="Enter block"];
|
||||
17 [label="Access variable R|<local>/it|"];
|
||||
18 [label="Exit block"];
|
||||
}
|
||||
19 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
20 [label="Exit block"];
|
||||
}
|
||||
21 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
22 [label="Postponed exit from lambda"];
|
||||
23 [label="Function call: R|<local>/s|.R|kotlin/let|<R|kotlin/String|, R|() -> kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||
24 [label="Delegated constructor call: super<R|A|>(...)" style="filled" fillcolor=yellow];
|
||||
25 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
8 [label="Enter property" style="filled" fillcolor=red];
|
||||
9 [label="Access variable R|<local>/s|"];
|
||||
10 [label="Exit property" style="filled" fillcolor=red];
|
||||
}
|
||||
26 [label="Exit class B" style="filled" fillcolor=red];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
11 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
12 [label="Access variable R|<local>/s|"];
|
||||
13 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
14 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
15 [label="Enter block"];
|
||||
16 [label="Exit anonymous function expression"];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
17 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
18 [label="Enter block"];
|
||||
19 [label="Access variable R|<local>/it|"];
|
||||
20 [label="Exit block"];
|
||||
}
|
||||
21 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
22 [label="Exit block"];
|
||||
}
|
||||
23 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
24 [label="Postponed exit from lambda"];
|
||||
25 [label="Function call: R|<local>/s|.R|kotlin/let|<R|kotlin/String|, R|() -> kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||
26 [label="Delegated constructor call: super<R|A|>(...)" style="filled" fillcolor=yellow];
|
||||
27 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
}
|
||||
28 [label="Exit class B" style="filled" fillcolor=red];
|
||||
}
|
||||
5 -> {6} [color=green];
|
||||
5 -> {26} [style=dotted];
|
||||
5 -> {6 9} [style=dashed];
|
||||
6 -> {7};
|
||||
7 -> {8};
|
||||
8 -> {9} [color=green];
|
||||
7 -> {8} [color=green];
|
||||
7 -> {28} [style=dotted];
|
||||
7 -> {8 11} [style=dashed];
|
||||
8 -> {9};
|
||||
9 -> {10};
|
||||
10 -> {11};
|
||||
11 -> {12 23};
|
||||
11 -> {22} [style=dotted];
|
||||
11 -> {12} [style=dashed];
|
||||
10 -> {11} [color=green];
|
||||
11 -> {12};
|
||||
12 -> {13};
|
||||
13 -> {14};
|
||||
14 -> {15 20};
|
||||
14 -> {15} [style=dashed];
|
||||
13 -> {14 25};
|
||||
13 -> {24} [style=dotted];
|
||||
13 -> {14} [style=dashed];
|
||||
14 -> {15};
|
||||
15 -> {16};
|
||||
16 -> {17};
|
||||
16 -> {17 22};
|
||||
16 -> {17} [style=dashed];
|
||||
17 -> {18};
|
||||
18 -> {19};
|
||||
19 -> {20};
|
||||
20 -> {21};
|
||||
21 -> {22};
|
||||
22 -> {23} [color=green];
|
||||
22 -> {24} [color=red];
|
||||
22 -> {23};
|
||||
23 -> {24};
|
||||
24 -> {25};
|
||||
25 -> {26} [color=green];
|
||||
24 -> {25} [color=green];
|
||||
24 -> {26} [color=red];
|
||||
25 -> {26};
|
||||
26 -> {27};
|
||||
27 -> {28} [color=green];
|
||||
|
||||
subgraph cluster_9 {
|
||||
subgraph cluster_10 {
|
||||
color=red
|
||||
27 [label="Enter function foo" style="filled" fillcolor=red];
|
||||
subgraph cluster_10 {
|
||||
29 [label="Enter function foo" style="filled" fillcolor=red];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
28 [label="Enter block"];
|
||||
29 [label="Function call: this@R|/B|.R|/B.foo|()" style="filled" fillcolor=yellow];
|
||||
30 [label="Exit block"];
|
||||
30 [label="Enter block"];
|
||||
31 [label="Function call: this@R|/B|.R|/B.foo|()" style="filled" fillcolor=yellow];
|
||||
32 [label="Exit block"];
|
||||
}
|
||||
31 [label="Exit function foo" style="filled" fillcolor=red];
|
||||
33 [label="Exit function foo" style="filled" fillcolor=red];
|
||||
}
|
||||
27 -> {28};
|
||||
28 -> {29};
|
||||
29 -> {30};
|
||||
30 -> {31};
|
||||
31 -> {32};
|
||||
32 -> {33};
|
||||
|
||||
}
|
||||
|
||||
+297
-288
@@ -5,14 +5,14 @@ digraph postponedLambdaInReturn_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter class Lateinit" style="filled" fillcolor=red];
|
||||
0 [label="Enter file postponedLambdaInReturn.kt" style="filled" fillcolor=red];
|
||||
subgraph cluster_1 {
|
||||
color=blue
|
||||
1 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
2 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
3 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
1 [label="Enter property" style="filled" fillcolor=red];
|
||||
2 [label="Const: Boolean(false)"];
|
||||
3 [label="Exit property" style="filled" fillcolor=red];
|
||||
}
|
||||
4 [label="Exit class Lateinit" style="filled" fillcolor=red];
|
||||
4 [label="Exit file postponedLambdaInReturn.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1} [color=green];
|
||||
0 -> {4} [style=dotted];
|
||||
@@ -23,475 +23,484 @@ digraph postponedLambdaInReturn_kt {
|
||||
|
||||
subgraph cluster_2 {
|
||||
color=red
|
||||
5 [label="Enter function build" style="filled" fillcolor=red];
|
||||
5 [label="Enter class Lateinit" style="filled" fillcolor=red];
|
||||
subgraph cluster_3 {
|
||||
color=blue
|
||||
6 [label="Enter block"];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
7 [label="Enter block"];
|
||||
8 [label="Exit block"];
|
||||
}
|
||||
9 [label="Function call: R|/Lateinit.Lateinit|<R|R|>()" style="filled" fillcolor=yellow];
|
||||
10 [label="Access variable R|<local>/builder|"];
|
||||
11 [label="Function call: R|/Lateinit.Lateinit|<R|R|>().R|kotlin/apply|<R|Lateinit<R>|>(...)" style="filled" fillcolor=yellow];
|
||||
12 [label="Access variable R|SubstitutionOverride</Lateinit.value: R|R|>|"];
|
||||
13 [label="Jump: ^build R|/Lateinit.Lateinit|<R|R|>().R|kotlin/apply|<R|Lateinit<R>|>(R|<local>/builder|).R|SubstitutionOverride</Lateinit.value: R|R|>|"];
|
||||
14 [label="Stub" style="filled" fillcolor=gray];
|
||||
15 [label="Exit block" style="filled" fillcolor=gray];
|
||||
6 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
7 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
8 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
}
|
||||
16 [label="Exit function build" style="filled" fillcolor=red];
|
||||
9 [label="Exit class Lateinit" style="filled" fillcolor=red];
|
||||
}
|
||||
5 -> {6};
|
||||
5 -> {6} [color=green];
|
||||
5 -> {9} [style=dotted];
|
||||
5 -> {6} [style=dashed];
|
||||
6 -> {7};
|
||||
7 -> {8};
|
||||
8 -> {9};
|
||||
9 -> {10};
|
||||
8 -> {9} [color=green];
|
||||
|
||||
subgraph cluster_4 {
|
||||
color=red
|
||||
10 [label="Enter function build" style="filled" fillcolor=red];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
11 [label="Enter block"];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
12 [label="Enter block"];
|
||||
13 [label="Exit block"];
|
||||
}
|
||||
14 [label="Function call: R|/Lateinit.Lateinit|<R|R|>()" style="filled" fillcolor=yellow];
|
||||
15 [label="Access variable R|<local>/builder|"];
|
||||
16 [label="Function call: R|/Lateinit.Lateinit|<R|R|>().R|kotlin/apply|<R|Lateinit<R>|>(...)" style="filled" fillcolor=yellow];
|
||||
17 [label="Access variable R|SubstitutionOverride</Lateinit.value: R|R|>|"];
|
||||
18 [label="Jump: ^build R|/Lateinit.Lateinit|<R|R|>().R|kotlin/apply|<R|Lateinit<R>|>(R|<local>/builder|).R|SubstitutionOverride</Lateinit.value: R|R|>|"];
|
||||
19 [label="Stub" style="filled" fillcolor=gray];
|
||||
20 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
21 [label="Exit function build" style="filled" fillcolor=red];
|
||||
}
|
||||
10 -> {11};
|
||||
11 -> {12};
|
||||
12 -> {13};
|
||||
13 -> {16};
|
||||
13 -> {14} [style=dotted];
|
||||
14 -> {15} [style=dotted];
|
||||
15 -> {16} [style=dotted];
|
||||
|
||||
subgraph cluster_5 {
|
||||
color=red
|
||||
17 [label="Enter property" style="filled" fillcolor=red];
|
||||
18 [label="Const: Boolean(false)"];
|
||||
19 [label="Exit property" style="filled" fillcolor=red];
|
||||
}
|
||||
13 -> {14};
|
||||
14 -> {15};
|
||||
15 -> {16};
|
||||
16 -> {17};
|
||||
17 -> {18};
|
||||
18 -> {19};
|
||||
18 -> {21};
|
||||
18 -> {19} [style=dotted];
|
||||
19 -> {20} [style=dotted];
|
||||
20 -> {21} [style=dotted];
|
||||
|
||||
subgraph cluster_6 {
|
||||
subgraph cluster_7 {
|
||||
color=red
|
||||
20 [label="Enter function test1" style="filled" fillcolor=red];
|
||||
subgraph cluster_7 {
|
||||
22 [label="Enter function test1" style="filled" fillcolor=red];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
21 [label="Enter block"];
|
||||
22 [label="Const: Null(null)"];
|
||||
23 [label="Variable declaration: lvar y: R|kotlin/String?|"];
|
||||
24 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_8 {
|
||||
23 [label="Enter block"];
|
||||
24 [label="Const: Null(null)"];
|
||||
25 [label="Variable declaration: lvar y: R|kotlin/String?|"];
|
||||
26 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
25 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_9 {
|
||||
27 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_10 {
|
||||
color=blue
|
||||
26 [label="Enter block"];
|
||||
subgraph cluster_10 {
|
||||
28 [label="Enter block"];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
27 [label="Enter when"];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
28 [label="Enter when branch condition "];
|
||||
29 [label="Access variable R|/p|"];
|
||||
30 [label="Exit when branch condition"];
|
||||
}
|
||||
29 [label="Enter when"];
|
||||
subgraph cluster_12 {
|
||||
color=blue
|
||||
31 [label="Enter when branch condition else"];
|
||||
30 [label="Enter when branch condition "];
|
||||
31 [label="Access variable R|/p|"];
|
||||
32 [label="Exit when branch condition"];
|
||||
}
|
||||
33 [label="Enter when branch result"];
|
||||
subgraph cluster_13 {
|
||||
color=blue
|
||||
34 [label="Enter block"];
|
||||
35 [label="Const: String()"];
|
||||
36 [label="Jump: ^@run String()"];
|
||||
37 [label="Stub" style="filled" fillcolor=gray];
|
||||
38 [label="Exit block" style="filled" fillcolor=gray];
|
||||
33 [label="Enter when branch condition else"];
|
||||
34 [label="Exit when branch condition"];
|
||||
}
|
||||
39 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
40 [label="Enter when branch result"];
|
||||
35 [label="Enter when branch result"];
|
||||
subgraph cluster_14 {
|
||||
color=blue
|
||||
41 [label="Enter block"];
|
||||
42 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_15 {
|
||||
36 [label="Enter block"];
|
||||
37 [label="Const: String()"];
|
||||
38 [label="Jump: ^@run String()"];
|
||||
39 [label="Stub" style="filled" fillcolor=gray];
|
||||
40 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
41 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
42 [label="Enter when branch result"];
|
||||
subgraph cluster_15 {
|
||||
color=blue
|
||||
43 [label="Enter block"];
|
||||
44 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_16 {
|
||||
color=blue
|
||||
43 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_16 {
|
||||
45 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_17 {
|
||||
color=blue
|
||||
44 [label="Enter block"];
|
||||
45 [label="Access variable R|<local>/y|"];
|
||||
46 [label="Type operator: (R|<local>/y| as R|kotlin/String|)"];
|
||||
47 [label="Const: String(...)"];
|
||||
48 [label="Assignment: R|SubstitutionOverride</Lateinit.value: R|kotlin/String|>|"];
|
||||
49 [label="Exit block"];
|
||||
46 [label="Enter block"];
|
||||
47 [label="Access variable R|<local>/y|"];
|
||||
48 [label="Type operator: (R|<local>/y| as R|kotlin/String|)"];
|
||||
49 [label="Const: String(...)"];
|
||||
50 [label="Assignment: R|SubstitutionOverride</Lateinit.value: R|kotlin/String|>|"];
|
||||
51 [label="Exit block"];
|
||||
}
|
||||
50 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
52 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
51 [label="Postponed exit from lambda"];
|
||||
52 [label="Function call: R|/build|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||
53 [label="Jump: ^@run R|/build|<R|kotlin/String|>(<L> = build@fun R|Lateinit<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=CrossInline, kind=EXACTLY_ONCE> {
|
||||
53 [label="Postponed exit from lambda"];
|
||||
54 [label="Function call: R|/build|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||
55 [label="Jump: ^@run R|/build|<R|kotlin/String|>(<L> = build@fun R|Lateinit<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=CrossInline, kind=EXACTLY_ONCE> {
|
||||
(R|<local>/y| as R|kotlin/String|)
|
||||
this@R|special/anonymous|.R|SubstitutionOverride</Lateinit.value: R|kotlin/String|>| = String(...)
|
||||
}
|
||||
)"];
|
||||
54 [label="Stub" style="filled" fillcolor=gray];
|
||||
55 [label="Exit block" style="filled" fillcolor=gray];
|
||||
56 [label="Stub" style="filled" fillcolor=gray];
|
||||
57 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
56 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
57 [label="Exit when" style="filled" fillcolor=gray];
|
||||
58 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
59 [label="Exit when" style="filled" fillcolor=gray];
|
||||
}
|
||||
58 [label="Exit block" style="filled" fillcolor=gray];
|
||||
60 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
59 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
61 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
60 [label="Postponed exit from lambda"];
|
||||
61 [label="Function call: R|kotlin/run|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||
62 [label="Variable declaration: lval x: R|kotlin/String|"];
|
||||
63 [label="Access variable R|<local>/y|"];
|
||||
64 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
|
||||
65 [label="Exit block"];
|
||||
62 [label="Postponed exit from lambda"];
|
||||
63 [label="Function call: R|kotlin/run|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||
64 [label="Variable declaration: lval x: R|kotlin/String|"];
|
||||
65 [label="Access variable R|<local>/y|"];
|
||||
66 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
|
||||
67 [label="Exit block"];
|
||||
}
|
||||
66 [label="Exit function test1" style="filled" fillcolor=red];
|
||||
68 [label="Exit function test1" style="filled" fillcolor=red];
|
||||
}
|
||||
20 -> {21};
|
||||
21 -> {22};
|
||||
22 -> {23};
|
||||
23 -> {24};
|
||||
24 -> {25 61};
|
||||
24 -> {60} [style=dotted];
|
||||
24 -> {25} [style=dashed];
|
||||
24 -> {25};
|
||||
25 -> {26};
|
||||
26 -> {27};
|
||||
26 -> {27 63};
|
||||
26 -> {62} [style=dotted];
|
||||
26 -> {27} [style=dashed];
|
||||
27 -> {28};
|
||||
28 -> {29};
|
||||
29 -> {30};
|
||||
30 -> {31 40};
|
||||
30 -> {31};
|
||||
31 -> {32};
|
||||
32 -> {33};
|
||||
32 -> {33 42};
|
||||
33 -> {34};
|
||||
34 -> {35};
|
||||
35 -> {36};
|
||||
36 -> {59};
|
||||
36 -> {37} [style=dotted];
|
||||
37 -> {38} [style=dotted];
|
||||
36 -> {37};
|
||||
37 -> {38};
|
||||
38 -> {61};
|
||||
38 -> {39} [style=dotted];
|
||||
39 -> {57} [style=dotted];
|
||||
40 -> {41};
|
||||
41 -> {42};
|
||||
42 -> {43 52};
|
||||
42 -> {51} [style=dotted];
|
||||
42 -> {43} [style=dashed];
|
||||
39 -> {40} [style=dotted];
|
||||
40 -> {41} [style=dotted];
|
||||
41 -> {59} [style=dotted];
|
||||
42 -> {43};
|
||||
43 -> {44};
|
||||
44 -> {45};
|
||||
44 -> {45 54};
|
||||
44 -> {53} [style=dotted];
|
||||
44 -> {45} [style=dashed];
|
||||
45 -> {46};
|
||||
46 -> {47};
|
||||
47 -> {48};
|
||||
48 -> {49};
|
||||
49 -> {50};
|
||||
50 -> {51};
|
||||
51 -> {52} [color=green];
|
||||
51 -> {52};
|
||||
52 -> {53};
|
||||
53 -> {59};
|
||||
53 -> {54} [style=dotted];
|
||||
54 -> {55} [style=dotted];
|
||||
53 -> {54} [color=green];
|
||||
54 -> {55};
|
||||
55 -> {61};
|
||||
55 -> {56} [style=dotted];
|
||||
56 -> {57} [style=dotted];
|
||||
57 -> {58} [style=dotted];
|
||||
58 -> {59} [style=dotted];
|
||||
59 -> {60};
|
||||
60 -> {61};
|
||||
59 -> {60} [style=dotted];
|
||||
60 -> {61} [style=dotted];
|
||||
61 -> {62};
|
||||
62 -> {63};
|
||||
63 -> {64};
|
||||
64 -> {65};
|
||||
65 -> {66};
|
||||
66 -> {67};
|
||||
67 -> {68};
|
||||
|
||||
subgraph cluster_17 {
|
||||
subgraph cluster_18 {
|
||||
color=red
|
||||
67 [label="Enter function test2" style="filled" fillcolor=red];
|
||||
subgraph cluster_18 {
|
||||
69 [label="Enter function test2" style="filled" fillcolor=red];
|
||||
subgraph cluster_19 {
|
||||
color=blue
|
||||
68 [label="Enter block"];
|
||||
69 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_19 {
|
||||
70 [label="Enter block"];
|
||||
71 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_20 {
|
||||
color=blue
|
||||
70 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_20 {
|
||||
72 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_21 {
|
||||
color=blue
|
||||
71 [label="Enter block"];
|
||||
subgraph cluster_21 {
|
||||
73 [label="Enter block"];
|
||||
subgraph cluster_22 {
|
||||
color=blue
|
||||
72 [label="Enter while loop"];
|
||||
subgraph cluster_22 {
|
||||
color=blue
|
||||
73 [label="Enter loop condition"];
|
||||
74 [label="Const: Boolean(true)"];
|
||||
75 [label="Exit loop condition"];
|
||||
}
|
||||
74 [label="Enter while loop"];
|
||||
subgraph cluster_23 {
|
||||
color=blue
|
||||
76 [label="Enter loop block"];
|
||||
subgraph cluster_24 {
|
||||
75 [label="Enter loop condition"];
|
||||
76 [label="Const: Boolean(true)"];
|
||||
77 [label="Exit loop condition"];
|
||||
}
|
||||
subgraph cluster_24 {
|
||||
color=blue
|
||||
78 [label="Enter loop block"];
|
||||
subgraph cluster_25 {
|
||||
color=blue
|
||||
77 [label="Enter block"];
|
||||
subgraph cluster_25 {
|
||||
79 [label="Enter block"];
|
||||
subgraph cluster_26 {
|
||||
color=blue
|
||||
78 [label="Try expression enter"];
|
||||
subgraph cluster_26 {
|
||||
80 [label="Try expression enter"];
|
||||
subgraph cluster_27 {
|
||||
color=blue
|
||||
79 [label="Try main block enter"];
|
||||
subgraph cluster_27 {
|
||||
81 [label="Try main block enter"];
|
||||
subgraph cluster_28 {
|
||||
color=blue
|
||||
80 [label="Enter block"];
|
||||
81 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_28 {
|
||||
82 [label="Enter block"];
|
||||
83 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_29 {
|
||||
color=blue
|
||||
82 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_29 {
|
||||
84 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_30 {
|
||||
color=blue
|
||||
83 [label="Enter block"];
|
||||
84 [label="Const: String(...)"];
|
||||
85 [label="Assignment: R|SubstitutionOverride</Lateinit.value: R|kotlin/String|>|"];
|
||||
86 [label="Exit block"];
|
||||
85 [label="Enter block"];
|
||||
86 [label="Const: String(...)"];
|
||||
87 [label="Assignment: R|SubstitutionOverride</Lateinit.value: R|kotlin/String|>|"];
|
||||
88 [label="Exit block"];
|
||||
}
|
||||
87 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
89 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
88 [label="Postponed exit from lambda"];
|
||||
89 [label="Function call: R|/build|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||
90 [label="Jump: ^@run R|/build|<R|kotlin/String|>(<L> = build@fun R|Lateinit<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=CrossInline, kind=EXACTLY_ONCE> {
|
||||
90 [label="Postponed exit from lambda"];
|
||||
91 [label="Function call: R|/build|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||
92 [label="Jump: ^@run R|/build|<R|kotlin/String|>(<L> = build@fun R|Lateinit<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=CrossInline, kind=EXACTLY_ONCE> {
|
||||
this@R|special/anonymous|.R|SubstitutionOverride</Lateinit.value: R|kotlin/String|>| = String(...)
|
||||
}
|
||||
)"];
|
||||
91 [label="Stub" style="filled" fillcolor=gray];
|
||||
92 [label="Exit block" style="filled" fillcolor=gray];
|
||||
93 [label="Stub" style="filled" fillcolor=gray];
|
||||
94 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
93 [label="Try main block exit" style="filled" fillcolor=gray];
|
||||
95 [label="Try main block exit" style="filled" fillcolor=gray];
|
||||
}
|
||||
subgraph cluster_30 {
|
||||
subgraph cluster_31 {
|
||||
color=blue
|
||||
94 [label="Catch enter"];
|
||||
95 [label="Variable declaration: e: R|kotlin/Throwable|"];
|
||||
subgraph cluster_31 {
|
||||
96 [label="Catch enter"];
|
||||
97 [label="Variable declaration: e: R|kotlin/Throwable|"];
|
||||
subgraph cluster_32 {
|
||||
color=blue
|
||||
96 [label="Enter block"];
|
||||
97 [label="Exit block"];
|
||||
98 [label="Enter block"];
|
||||
99 [label="Exit block"];
|
||||
}
|
||||
98 [label="Catch exit"];
|
||||
100 [label="Catch exit"];
|
||||
}
|
||||
99 [label="Try expression exit"];
|
||||
101 [label="Try expression exit"];
|
||||
}
|
||||
100 [label="Exit block"];
|
||||
102 [label="Exit block"];
|
||||
}
|
||||
101 [label="Exit loop block"];
|
||||
103 [label="Exit loop block"];
|
||||
}
|
||||
102 [label="Exit while loop" style="filled" fillcolor=gray];
|
||||
104 [label="Exit while loop" style="filled" fillcolor=gray];
|
||||
}
|
||||
103 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=gray];
|
||||
104 [label="Throw: throw R|java/lang/Exception.Exception|()" style="filled" fillcolor=gray];
|
||||
105 [label="Stub" style="filled" fillcolor=gray];
|
||||
106 [label="Exit block" style="filled" fillcolor=gray];
|
||||
105 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=gray];
|
||||
106 [label="Throw: throw R|java/lang/Exception.Exception|()" style="filled" fillcolor=gray];
|
||||
107 [label="Stub" style="filled" fillcolor=gray];
|
||||
108 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
107 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
109 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
108 [label="Postponed exit from lambda"];
|
||||
109 [label="Function call: R|kotlin/run|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||
110 [label="Variable declaration: lval x: R|kotlin/String|"];
|
||||
111 [label="Access variable R|<local>/x|"];
|
||||
112 [label="Access variable R|kotlin/String.length|"];
|
||||
113 [label="Exit block"];
|
||||
110 [label="Postponed exit from lambda"];
|
||||
111 [label="Function call: R|kotlin/run|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||
112 [label="Variable declaration: lval x: R|kotlin/String|"];
|
||||
113 [label="Access variable R|<local>/x|"];
|
||||
114 [label="Access variable R|kotlin/String.length|"];
|
||||
115 [label="Exit block"];
|
||||
}
|
||||
114 [label="Exit function test2" style="filled" fillcolor=red];
|
||||
116 [label="Exit function test2" style="filled" fillcolor=red];
|
||||
}
|
||||
67 -> {68};
|
||||
68 -> {69};
|
||||
69 -> {70 109};
|
||||
69 -> {108} [style=dotted];
|
||||
69 -> {70} [style=dashed];
|
||||
69 -> {70};
|
||||
70 -> {71};
|
||||
71 -> {72};
|
||||
71 -> {72 111};
|
||||
71 -> {110} [style=dotted];
|
||||
71 -> {72} [style=dashed];
|
||||
72 -> {73};
|
||||
73 -> {74};
|
||||
74 -> {75};
|
||||
75 -> {76};
|
||||
75 -> {102} [style=dotted];
|
||||
76 -> {77};
|
||||
77 -> {78};
|
||||
78 -> {79 94};
|
||||
77 -> {104} [style=dotted];
|
||||
78 -> {79};
|
||||
79 -> {80};
|
||||
80 -> {81};
|
||||
81 -> {82 89};
|
||||
81 -> {88} [style=dotted];
|
||||
81 -> {82} [style=dashed];
|
||||
80 -> {81 96};
|
||||
81 -> {82};
|
||||
82 -> {83};
|
||||
83 -> {84};
|
||||
83 -> {84 91};
|
||||
83 -> {90} [style=dotted];
|
||||
83 -> {84} [style=dashed];
|
||||
84 -> {85};
|
||||
85 -> {86};
|
||||
86 -> {87};
|
||||
87 -> {88};
|
||||
88 -> {89} [color=green];
|
||||
89 -> {90 94};
|
||||
90 -> {107};
|
||||
90 -> {91} [style=dotted];
|
||||
91 -> {92} [style=dotted];
|
||||
88 -> {89};
|
||||
89 -> {90};
|
||||
90 -> {91} [color=green];
|
||||
91 -> {92 96};
|
||||
92 -> {109};
|
||||
92 -> {93} [style=dotted];
|
||||
93 -> {94 99} [style=dotted];
|
||||
94 -> {95};
|
||||
95 -> {96};
|
||||
93 -> {94} [style=dotted];
|
||||
94 -> {95} [style=dotted];
|
||||
95 -> {96 101} [style=dotted];
|
||||
96 -> {97};
|
||||
97 -> {98};
|
||||
98 -> {99};
|
||||
99 -> {100};
|
||||
100 -> {101};
|
||||
101 -> {73} [color=green style=dashed];
|
||||
102 -> {103} [style=dotted];
|
||||
103 -> {104} [style=dotted];
|
||||
101 -> {102};
|
||||
102 -> {103};
|
||||
103 -> {75} [color=green style=dashed];
|
||||
104 -> {105} [style=dotted];
|
||||
105 -> {106} [style=dotted];
|
||||
106 -> {107} [style=dotted];
|
||||
107 -> {108};
|
||||
108 -> {109};
|
||||
107 -> {108} [style=dotted];
|
||||
108 -> {109} [style=dotted];
|
||||
109 -> {110};
|
||||
110 -> {111};
|
||||
111 -> {112};
|
||||
112 -> {113};
|
||||
113 -> {114};
|
||||
114 -> {115};
|
||||
115 -> {116};
|
||||
|
||||
subgraph cluster_32 {
|
||||
subgraph cluster_33 {
|
||||
color=red
|
||||
115 [label="Enter function test3" style="filled" fillcolor=red];
|
||||
subgraph cluster_33 {
|
||||
117 [label="Enter function test3" style="filled" fillcolor=red];
|
||||
subgraph cluster_34 {
|
||||
color=blue
|
||||
116 [label="Enter block"];
|
||||
117 [label="Variable declaration: lvar y: R|kotlin/String?|"];
|
||||
118 [label="Const: String()"];
|
||||
119 [label="Assignment: R|<local>/y|"];
|
||||
120 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_34 {
|
||||
118 [label="Enter block"];
|
||||
119 [label="Variable declaration: lvar y: R|kotlin/String?|"];
|
||||
120 [label="Const: String()"];
|
||||
121 [label="Assignment: R|<local>/y|"];
|
||||
122 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_35 {
|
||||
color=blue
|
||||
121 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_35 {
|
||||
123 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_36 {
|
||||
color=blue
|
||||
122 [label="Enter block"];
|
||||
subgraph cluster_36 {
|
||||
124 [label="Enter block"];
|
||||
subgraph cluster_37 {
|
||||
color=blue
|
||||
123 [label="Enter when"];
|
||||
subgraph cluster_37 {
|
||||
color=blue
|
||||
124 [label="Enter when branch condition "];
|
||||
125 [label="Access variable R|/p|"];
|
||||
126 [label="Function call: R|/p|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
||||
127 [label="Exit when branch condition"];
|
||||
}
|
||||
125 [label="Enter when"];
|
||||
subgraph cluster_38 {
|
||||
color=blue
|
||||
128 [label="Enter when branch condition else"];
|
||||
126 [label="Enter when branch condition "];
|
||||
127 [label="Access variable R|/p|"];
|
||||
128 [label="Function call: R|/p|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
||||
129 [label="Exit when branch condition"];
|
||||
}
|
||||
130 [label="Enter when branch result"];
|
||||
subgraph cluster_39 {
|
||||
color=blue
|
||||
131 [label="Enter block"];
|
||||
132 [label="Const: String()"];
|
||||
133 [label="Jump: ^@run String()"];
|
||||
134 [label="Stub" style="filled" fillcolor=gray];
|
||||
135 [label="Exit block" style="filled" fillcolor=gray];
|
||||
130 [label="Enter when branch condition else"];
|
||||
131 [label="Exit when branch condition"];
|
||||
}
|
||||
136 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
137 [label="Enter when branch result"];
|
||||
132 [label="Enter when branch result"];
|
||||
subgraph cluster_40 {
|
||||
color=blue
|
||||
138 [label="Enter block"];
|
||||
139 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_41 {
|
||||
133 [label="Enter block"];
|
||||
134 [label="Const: String()"];
|
||||
135 [label="Jump: ^@run String()"];
|
||||
136 [label="Stub" style="filled" fillcolor=gray];
|
||||
137 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
138 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
139 [label="Enter when branch result"];
|
||||
subgraph cluster_41 {
|
||||
color=blue
|
||||
140 [label="Enter block"];
|
||||
141 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_42 {
|
||||
color=blue
|
||||
140 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_42 {
|
||||
142 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_43 {
|
||||
color=blue
|
||||
141 [label="Enter block"];
|
||||
142 [label="Const: Null(null)"];
|
||||
143 [label="Assignment: R|<local>/y|"];
|
||||
144 [label="Const: String(...)"];
|
||||
145 [label="Assignment: R|SubstitutionOverride</Lateinit.value: R|kotlin/String|>|"];
|
||||
146 [label="Exit block"];
|
||||
143 [label="Enter block"];
|
||||
144 [label="Const: Null(null)"];
|
||||
145 [label="Assignment: R|<local>/y|"];
|
||||
146 [label="Const: String(...)"];
|
||||
147 [label="Assignment: R|SubstitutionOverride</Lateinit.value: R|kotlin/String|>|"];
|
||||
148 [label="Exit block"];
|
||||
}
|
||||
147 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
149 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
148 [label="Postponed exit from lambda"];
|
||||
149 [label="Function call: R|/build|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||
150 [label="Jump: ^@run R|/build|<R|kotlin/String|>(<L> = build@fun R|Lateinit<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=CrossInline, kind=EXACTLY_ONCE> {
|
||||
150 [label="Postponed exit from lambda"];
|
||||
151 [label="Function call: R|/build|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||
152 [label="Jump: ^@run R|/build|<R|kotlin/String|>(<L> = build@fun R|Lateinit<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=CrossInline, kind=EXACTLY_ONCE> {
|
||||
R|<local>/y| = Null(null)
|
||||
this@R|special/anonymous|.R|SubstitutionOverride</Lateinit.value: R|kotlin/String|>| = String(...)
|
||||
}
|
||||
)"];
|
||||
151 [label="Stub" style="filled" fillcolor=gray];
|
||||
152 [label="Exit block" style="filled" fillcolor=gray];
|
||||
153 [label="Stub" style="filled" fillcolor=gray];
|
||||
154 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
153 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
154 [label="Exit when" style="filled" fillcolor=gray];
|
||||
155 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
156 [label="Exit when" style="filled" fillcolor=gray];
|
||||
}
|
||||
155 [label="Exit block" style="filled" fillcolor=gray];
|
||||
157 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
156 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
158 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
157 [label="Postponed exit from lambda"];
|
||||
158 [label="Function call: R|kotlin/run|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||
159 [label="Variable declaration: lval x: R|kotlin/String|"];
|
||||
160 [label="Access variable R|<local>/y|"];
|
||||
161 [label="Smart cast: R|<local>/y|"];
|
||||
162 [label="Access variable R|kotlin/String.length|"];
|
||||
163 [label="Exit block"];
|
||||
159 [label="Postponed exit from lambda"];
|
||||
160 [label="Function call: R|kotlin/run|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
|
||||
161 [label="Variable declaration: lval x: R|kotlin/String|"];
|
||||
162 [label="Access variable R|<local>/y|"];
|
||||
163 [label="Smart cast: R|<local>/y|"];
|
||||
164 [label="Access variable R|kotlin/String.length|"];
|
||||
165 [label="Exit block"];
|
||||
}
|
||||
164 [label="Exit function test3" style="filled" fillcolor=red];
|
||||
166 [label="Exit function test3" style="filled" fillcolor=red];
|
||||
}
|
||||
115 -> {116};
|
||||
116 -> {117};
|
||||
117 -> {118};
|
||||
118 -> {119};
|
||||
119 -> {120};
|
||||
120 -> {121 158};
|
||||
120 -> {157} [style=dotted];
|
||||
120 -> {121} [style=dashed];
|
||||
120 -> {121};
|
||||
121 -> {122};
|
||||
122 -> {123};
|
||||
122 -> {123 160};
|
||||
122 -> {159} [style=dotted];
|
||||
122 -> {123} [style=dashed];
|
||||
123 -> {124};
|
||||
124 -> {125};
|
||||
125 -> {126};
|
||||
126 -> {127};
|
||||
127 -> {128 137};
|
||||
127 -> {128};
|
||||
128 -> {129};
|
||||
129 -> {130};
|
||||
129 -> {130 139};
|
||||
130 -> {131};
|
||||
131 -> {132};
|
||||
132 -> {133};
|
||||
133 -> {156};
|
||||
133 -> {134} [style=dotted];
|
||||
134 -> {135} [style=dotted];
|
||||
133 -> {134};
|
||||
134 -> {135};
|
||||
135 -> {158};
|
||||
135 -> {136} [style=dotted];
|
||||
136 -> {154} [style=dotted];
|
||||
137 -> {138};
|
||||
138 -> {139};
|
||||
139 -> {140 149};
|
||||
139 -> {148} [style=dotted];
|
||||
139 -> {140} [style=dashed];
|
||||
136 -> {137} [style=dotted];
|
||||
137 -> {138} [style=dotted];
|
||||
138 -> {156} [style=dotted];
|
||||
139 -> {140};
|
||||
140 -> {141};
|
||||
141 -> {142};
|
||||
141 -> {142 151};
|
||||
141 -> {150} [style=dotted];
|
||||
141 -> {142} [style=dashed];
|
||||
142 -> {143};
|
||||
143 -> {144};
|
||||
144 -> {145};
|
||||
145 -> {146};
|
||||
146 -> {147};
|
||||
147 -> {148};
|
||||
148 -> {149} [color=green];
|
||||
148 -> {149};
|
||||
149 -> {150};
|
||||
150 -> {156};
|
||||
150 -> {151} [style=dotted];
|
||||
151 -> {152} [style=dotted];
|
||||
150 -> {151} [color=green];
|
||||
151 -> {152};
|
||||
152 -> {158};
|
||||
152 -> {153} [style=dotted];
|
||||
153 -> {154} [style=dotted];
|
||||
154 -> {155} [style=dotted];
|
||||
155 -> {156} [style=dotted];
|
||||
156 -> {157};
|
||||
157 -> {158};
|
||||
156 -> {157} [style=dotted];
|
||||
157 -> {158} [style=dotted];
|
||||
158 -> {159};
|
||||
159 -> {160};
|
||||
160 -> {161};
|
||||
161 -> {162};
|
||||
162 -> {163};
|
||||
163 -> {164};
|
||||
164 -> {165};
|
||||
165 -> {166};
|
||||
|
||||
}
|
||||
|
||||
@@ -5,56 +5,63 @@ digraph postponedLambdas_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter function foo" style="filled" fillcolor=red];
|
||||
subgraph cluster_1 {
|
||||
color=blue
|
||||
1 [label="Enter block"];
|
||||
2 [label="Exit block"];
|
||||
}
|
||||
3 [label="Exit function foo" style="filled" fillcolor=red];
|
||||
0 [label="Enter file postponedLambdas.kt" style="filled" fillcolor=red];
|
||||
1 [label="Exit file postponedLambdas.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1};
|
||||
1 -> {2};
|
||||
2 -> {3};
|
||||
0 -> {1} [color=green];
|
||||
|
||||
subgraph cluster_2 {
|
||||
subgraph cluster_1 {
|
||||
color=red
|
||||
4 [label="Enter function test" style="filled" fillcolor=red];
|
||||
subgraph cluster_3 {
|
||||
2 [label="Enter function foo" style="filled" fillcolor=red];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
5 [label="Enter block"];
|
||||
6 [label="Access variable R|<local>/a|"];
|
||||
7 [label="Access variable R|<local>/b|"];
|
||||
8 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
9 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
10 [label="Enter block"];
|
||||
11 [label="Const: String()"];
|
||||
12 [label="Exit block"];
|
||||
}
|
||||
13 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
14 [label="Postponed exit from lambda"];
|
||||
15 [label="Function call: R|/foo|(...)" style="filled" fillcolor=yellow];
|
||||
16 [label="Exit block"];
|
||||
3 [label="Enter block"];
|
||||
4 [label="Exit block"];
|
||||
}
|
||||
17 [label="Exit function test" style="filled" fillcolor=red];
|
||||
5 [label="Exit function foo" style="filled" fillcolor=red];
|
||||
}
|
||||
2 -> {3};
|
||||
3 -> {4};
|
||||
4 -> {5};
|
||||
5 -> {6};
|
||||
|
||||
subgraph cluster_3 {
|
||||
color=red
|
||||
6 [label="Enter function test" style="filled" fillcolor=red];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
7 [label="Enter block"];
|
||||
8 [label="Access variable R|<local>/a|"];
|
||||
9 [label="Access variable R|<local>/b|"];
|
||||
10 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
11 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
12 [label="Enter block"];
|
||||
13 [label="Const: String()"];
|
||||
14 [label="Exit block"];
|
||||
}
|
||||
15 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
16 [label="Postponed exit from lambda"];
|
||||
17 [label="Function call: R|/foo|(...)" style="filled" fillcolor=yellow];
|
||||
18 [label="Exit block"];
|
||||
}
|
||||
19 [label="Exit function test" style="filled" fillcolor=red];
|
||||
}
|
||||
6 -> {7};
|
||||
7 -> {8};
|
||||
8 -> {9 14 15};
|
||||
8 -> {9} [style=dashed];
|
||||
8 -> {9};
|
||||
9 -> {10};
|
||||
10 -> {11};
|
||||
10 -> {11 16 17};
|
||||
10 -> {11} [style=dashed];
|
||||
11 -> {12};
|
||||
12 -> {13};
|
||||
13 -> {14};
|
||||
14 -> {15};
|
||||
15 -> {16};
|
||||
16 -> {17};
|
||||
17 -> {18};
|
||||
18 -> {19};
|
||||
|
||||
}
|
||||
|
||||
+267
-258
@@ -5,304 +5,313 @@ digraph propertiesAndInitBlocks_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter function run" style="filled" fillcolor=red];
|
||||
0 [label="Enter file propertiesAndInitBlocks.kt" style="filled" fillcolor=red];
|
||||
subgraph cluster_1 {
|
||||
color=blue
|
||||
1 [label="Enter block"];
|
||||
2 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||
3 [label="Exit block"];
|
||||
1 [label="Enter property" style="filled" fillcolor=red];
|
||||
2 [label="Const: Int(1)"];
|
||||
3 [label="Exit property" style="filled" fillcolor=red];
|
||||
}
|
||||
4 [label="Exit function run" style="filled" fillcolor=red];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
4 [label="Enter property" style="filled" fillcolor=red];
|
||||
5 [label="Const: Int(1)"];
|
||||
6 [label="Exit property" style="filled" fillcolor=red];
|
||||
}
|
||||
subgraph cluster_3 {
|
||||
color=blue
|
||||
7 [label="Enter property" style="filled" fillcolor=red];
|
||||
8 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
9 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
10 [label="Enter block"];
|
||||
11 [label="Local function declaration"];
|
||||
12 [label="Local class declaration"];
|
||||
13 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||
14 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||
15 [label="Stub" style="filled" fillcolor=gray];
|
||||
16 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
17 [label="Exit function <anonymous>" style="filled" fillcolor=gray];
|
||||
}
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
18 [label="Enter class InitializerLocalClass" style="filled" fillcolor=red];
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
19 [label="Enter init block" style="filled" fillcolor=red];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
20 [label="Enter block"];
|
||||
21 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||
22 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||
23 [label="Stub" style="filled" fillcolor=gray];
|
||||
24 [label="Const: Int(1)" style="filled" fillcolor=gray];
|
||||
25 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
26 [label="Exit init block" style="filled" fillcolor=gray];
|
||||
}
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
27 [label="Enter function <init>" style="filled" fillcolor=gray];
|
||||
28 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=gray];
|
||||
29 [label="Exit function <init>" style="filled" fillcolor=gray];
|
||||
}
|
||||
30 [label="Exit class InitializerLocalClass" style="filled" fillcolor=gray];
|
||||
}
|
||||
subgraph cluster_10 {
|
||||
color=blue
|
||||
31 [label="Enter function foo" style="filled" fillcolor=red];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
32 [label="Enter block"];
|
||||
33 [label="Const: Int(1)"];
|
||||
34 [label="Const: Int(1)"];
|
||||
35 [label="Function call: Int(1).R|kotlin/Int.plus|(...)" style="filled" fillcolor=yellow];
|
||||
36 [label="Variable declaration: lval c: R|kotlin/Int|"];
|
||||
37 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||
38 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||
39 [label="Stub" style="filled" fillcolor=gray];
|
||||
40 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
41 [label="Exit function foo" style="filled" fillcolor=gray];
|
||||
}
|
||||
42 [label="Postponed exit from lambda"];
|
||||
43 [label="Function call: R|/run|(...)" style="filled" fillcolor=yellow];
|
||||
44 [label="Exit property" style="filled" fillcolor=red];
|
||||
}
|
||||
subgraph cluster_12 {
|
||||
color=blue
|
||||
45 [label="Enter property" style="filled" fillcolor=red];
|
||||
subgraph cluster_13 {
|
||||
color=blue
|
||||
46 [label="Try expression enter"];
|
||||
subgraph cluster_14 {
|
||||
color=blue
|
||||
47 [label="Try main block enter"];
|
||||
subgraph cluster_15 {
|
||||
color=blue
|
||||
48 [label="Enter block"];
|
||||
49 [label="Const: Int(1)"];
|
||||
50 [label="Exit block"];
|
||||
}
|
||||
51 [label="Try main block exit"];
|
||||
}
|
||||
subgraph cluster_16 {
|
||||
color=blue
|
||||
52 [label="Catch enter"];
|
||||
53 [label="Variable declaration: e: R|kotlin/Exception|"];
|
||||
subgraph cluster_17 {
|
||||
color=blue
|
||||
54 [label="Enter block"];
|
||||
55 [label="Const: Int(2)"];
|
||||
56 [label="Exit block"];
|
||||
}
|
||||
57 [label="Catch exit"];
|
||||
}
|
||||
subgraph cluster_18 {
|
||||
color=blue
|
||||
58 [label="Enter finally"];
|
||||
subgraph cluster_19 {
|
||||
color=blue
|
||||
59 [label="Enter block"];
|
||||
60 [label="Const: Int(0)"];
|
||||
61 [label="Exit block"];
|
||||
}
|
||||
62 [label="Exit finally"];
|
||||
}
|
||||
63 [label="Try expression exit"];
|
||||
}
|
||||
64 [label="Exit property" style="filled" fillcolor=red];
|
||||
}
|
||||
65 [label="Exit file propertiesAndInitBlocks.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1};
|
||||
0 -> {1} [color=green];
|
||||
0 -> {65} [style=dotted];
|
||||
0 -> {1 4 7 45} [style=dashed];
|
||||
1 -> {2};
|
||||
2 -> {3};
|
||||
3 -> {4};
|
||||
|
||||
subgraph cluster_2 {
|
||||
color=red
|
||||
5 [label="Enter property" style="filled" fillcolor=red];
|
||||
6 [label="Const: Int(1)"];
|
||||
7 [label="Exit property" style="filled" fillcolor=red];
|
||||
}
|
||||
3 -> {4} [color=green];
|
||||
4 -> {5};
|
||||
5 -> {6};
|
||||
6 -> {7};
|
||||
|
||||
subgraph cluster_3 {
|
||||
color=red
|
||||
8 [label="Enter function <getter>" style="filled" fillcolor=red];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
9 [label="Enter block"];
|
||||
10 [label="Const: Int(1)"];
|
||||
11 [label="Jump: ^ Int(1)"];
|
||||
12 [label="Stub" style="filled" fillcolor=gray];
|
||||
13 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
14 [label="Exit function <getter>" style="filled" fillcolor=red];
|
||||
}
|
||||
8 -> {9};
|
||||
6 -> {7} [color=green];
|
||||
7 -> {8};
|
||||
8 -> {9 42 43};
|
||||
8 -> {9} [style=dashed];
|
||||
9 -> {10};
|
||||
10 -> {11};
|
||||
11 -> {14};
|
||||
11 -> {12} [style=dotted];
|
||||
12 -> {13} [style=dotted];
|
||||
13 -> {14} [style=dotted];
|
||||
|
||||
subgraph cluster_5 {
|
||||
color=red
|
||||
15 [label="Enter function <setter>" style="filled" fillcolor=red];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
16 [label="Enter block"];
|
||||
17 [label="Const: Int(1)"];
|
||||
18 [label="Assignment: F|/x2|"];
|
||||
19 [label="Exit block"];
|
||||
}
|
||||
20 [label="Exit function <setter>" style="filled" fillcolor=red];
|
||||
}
|
||||
15 -> {16};
|
||||
16 -> {17};
|
||||
17 -> {18};
|
||||
11 -> {12 31};
|
||||
11 -> {31} [style=dashed];
|
||||
12 -> {13 18};
|
||||
12 -> {18} [style=dashed];
|
||||
13 -> {14};
|
||||
14 -> {15} [style=dotted];
|
||||
15 -> {16} [style=dotted];
|
||||
16 -> {17} [style=dotted];
|
||||
17 -> {42} [style=dotted];
|
||||
18 -> {19};
|
||||
18 -> {27} [color=red];
|
||||
18 -> {30} [style=dotted];
|
||||
18 -> {19 27} [style=dashed];
|
||||
19 -> {20};
|
||||
|
||||
subgraph cluster_7 {
|
||||
color=red
|
||||
21 [label="Enter property" style="filled" fillcolor=red];
|
||||
22 [label="Const: Int(1)"];
|
||||
23 [label="Exit property" style="filled" fillcolor=red];
|
||||
}
|
||||
20 -> {21};
|
||||
21 -> {22};
|
||||
22 -> {23};
|
||||
|
||||
subgraph cluster_8 {
|
||||
color=red
|
||||
24 [label="Enter function <getter>" style="filled" fillcolor=red];
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
25 [label="Enter block"];
|
||||
26 [label="Local class declaration"];
|
||||
27 [label="Exit block"];
|
||||
}
|
||||
28 [label="Exit function <getter>" style="filled" fillcolor=red];
|
||||
}
|
||||
subgraph cluster_10 {
|
||||
color=blue
|
||||
29 [label="Enter class GetterLocalClass" style="filled" fillcolor=red];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
30 [label="Enter init block" style="filled" fillcolor=red];
|
||||
subgraph cluster_12 {
|
||||
color=blue
|
||||
31 [label="Enter block"];
|
||||
32 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||
33 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||
34 [label="Stub" style="filled" fillcolor=gray];
|
||||
35 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
36 [label="Exit init block" style="filled" fillcolor=gray];
|
||||
}
|
||||
subgraph cluster_13 {
|
||||
color=blue
|
||||
37 [label="Enter function <init>" style="filled" fillcolor=gray];
|
||||
38 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=gray];
|
||||
39 [label="Exit function <init>" style="filled" fillcolor=gray];
|
||||
}
|
||||
40 [label="Exit class GetterLocalClass" style="filled" fillcolor=gray];
|
||||
}
|
||||
24 -> {25};
|
||||
25 -> {26};
|
||||
26 -> {27 29};
|
||||
26 -> {29} [style=dashed];
|
||||
27 -> {28};
|
||||
29 -> {30};
|
||||
29 -> {37} [color=red];
|
||||
29 -> {40} [style=dotted];
|
||||
29 -> {30 37} [style=dashed];
|
||||
30 -> {31};
|
||||
22 -> {23} [style=dotted];
|
||||
23 -> {24} [style=dotted];
|
||||
24 -> {25} [style=dotted];
|
||||
25 -> {26} [style=dotted];
|
||||
26 -> {27} [style=dotted];
|
||||
27 -> {28} [style=dotted];
|
||||
28 -> {29} [style=dotted];
|
||||
29 -> {30} [style=dotted];
|
||||
31 -> {32};
|
||||
32 -> {33};
|
||||
33 -> {34} [style=dotted];
|
||||
34 -> {35} [style=dotted];
|
||||
35 -> {36} [style=dotted];
|
||||
36 -> {37} [style=dotted];
|
||||
37 -> {38} [style=dotted];
|
||||
33 -> {34};
|
||||
34 -> {35};
|
||||
35 -> {36};
|
||||
36 -> {37};
|
||||
37 -> {38};
|
||||
38 -> {39} [style=dotted];
|
||||
39 -> {40} [style=dotted];
|
||||
|
||||
subgraph cluster_14 {
|
||||
color=red
|
||||
41 [label="Enter property" style="filled" fillcolor=red];
|
||||
42 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_15 {
|
||||
color=blue
|
||||
43 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_16 {
|
||||
color=blue
|
||||
44 [label="Enter block"];
|
||||
45 [label="Local function declaration"];
|
||||
46 [label="Local class declaration"];
|
||||
47 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||
48 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||
49 [label="Stub" style="filled" fillcolor=gray];
|
||||
50 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
51 [label="Exit function <anonymous>" style="filled" fillcolor=gray];
|
||||
}
|
||||
subgraph cluster_17 {
|
||||
color=blue
|
||||
52 [label="Enter class InitializerLocalClass" style="filled" fillcolor=red];
|
||||
subgraph cluster_18 {
|
||||
color=blue
|
||||
53 [label="Enter init block" style="filled" fillcolor=red];
|
||||
subgraph cluster_19 {
|
||||
color=blue
|
||||
54 [label="Enter block"];
|
||||
55 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||
56 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||
57 [label="Stub" style="filled" fillcolor=gray];
|
||||
58 [label="Const: Int(1)" style="filled" fillcolor=gray];
|
||||
59 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
60 [label="Exit init block" style="filled" fillcolor=gray];
|
||||
}
|
||||
subgraph cluster_20 {
|
||||
color=blue
|
||||
61 [label="Enter function <init>" style="filled" fillcolor=gray];
|
||||
62 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=gray];
|
||||
63 [label="Exit function <init>" style="filled" fillcolor=gray];
|
||||
}
|
||||
64 [label="Exit class InitializerLocalClass" style="filled" fillcolor=gray];
|
||||
}
|
||||
subgraph cluster_21 {
|
||||
color=blue
|
||||
65 [label="Enter function foo" style="filled" fillcolor=red];
|
||||
subgraph cluster_22 {
|
||||
color=blue
|
||||
66 [label="Enter block"];
|
||||
67 [label="Const: Int(1)"];
|
||||
68 [label="Const: Int(1)"];
|
||||
69 [label="Function call: Int(1).R|kotlin/Int.plus|(...)" style="filled" fillcolor=yellow];
|
||||
70 [label="Variable declaration: lval c: R|kotlin/Int|"];
|
||||
71 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||
72 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||
73 [label="Stub" style="filled" fillcolor=gray];
|
||||
74 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
75 [label="Exit function foo" style="filled" fillcolor=gray];
|
||||
}
|
||||
76 [label="Postponed exit from lambda"];
|
||||
77 [label="Function call: R|/run|(...)" style="filled" fillcolor=yellow];
|
||||
78 [label="Exit property" style="filled" fillcolor=red];
|
||||
}
|
||||
41 -> {42};
|
||||
42 -> {43 76 77};
|
||||
42 -> {43} [style=dashed];
|
||||
40 -> {41} [style=dotted];
|
||||
42 -> {43};
|
||||
42 -> {8} [color=green style=dashed];
|
||||
43 -> {44};
|
||||
44 -> {45};
|
||||
45 -> {46 65};
|
||||
45 -> {65} [style=dashed];
|
||||
44 -> {45} [color=green];
|
||||
45 -> {46};
|
||||
46 -> {47 52};
|
||||
46 -> {52} [style=dashed];
|
||||
46 -> {58} [label="onUncaughtException"];
|
||||
47 -> {48};
|
||||
48 -> {49} [style=dotted];
|
||||
49 -> {50} [style=dotted];
|
||||
50 -> {51} [style=dotted];
|
||||
51 -> {76} [style=dotted];
|
||||
48 -> {49};
|
||||
49 -> {50};
|
||||
50 -> {51};
|
||||
51 -> {52 58};
|
||||
52 -> {53};
|
||||
52 -> {61} [color=red];
|
||||
52 -> {64} [style=dotted];
|
||||
52 -> {53 61} [style=dashed];
|
||||
52 -> {58} [label="onUncaughtException"];
|
||||
53 -> {54};
|
||||
54 -> {55};
|
||||
55 -> {56};
|
||||
56 -> {57} [style=dotted];
|
||||
57 -> {58} [style=dotted];
|
||||
58 -> {59} [style=dotted];
|
||||
59 -> {60} [style=dotted];
|
||||
60 -> {61} [style=dotted];
|
||||
61 -> {62} [style=dotted];
|
||||
62 -> {63} [style=dotted];
|
||||
63 -> {64} [style=dotted];
|
||||
65 -> {66};
|
||||
56 -> {57};
|
||||
57 -> {58};
|
||||
58 -> {59};
|
||||
59 -> {60};
|
||||
60 -> {61};
|
||||
61 -> {62};
|
||||
62 -> {63};
|
||||
63 -> {64};
|
||||
64 -> {65} [color=green];
|
||||
|
||||
subgraph cluster_20 {
|
||||
color=red
|
||||
66 [label="Enter function run" style="filled" fillcolor=red];
|
||||
subgraph cluster_21 {
|
||||
color=blue
|
||||
67 [label="Enter block"];
|
||||
68 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
||||
69 [label="Exit block"];
|
||||
}
|
||||
70 [label="Exit function run" style="filled" fillcolor=red];
|
||||
}
|
||||
66 -> {67};
|
||||
67 -> {68};
|
||||
68 -> {69};
|
||||
69 -> {70};
|
||||
70 -> {71};
|
||||
71 -> {72};
|
||||
72 -> {73} [style=dotted];
|
||||
73 -> {74} [style=dotted];
|
||||
74 -> {75} [style=dotted];
|
||||
76 -> {77};
|
||||
76 -> {42} [color=green style=dashed];
|
||||
77 -> {78};
|
||||
|
||||
subgraph cluster_23 {
|
||||
subgraph cluster_22 {
|
||||
color=red
|
||||
79 [label="Enter property" style="filled" fillcolor=red];
|
||||
subgraph cluster_24 {
|
||||
71 [label="Enter function <getter>" style="filled" fillcolor=red];
|
||||
subgraph cluster_23 {
|
||||
color=blue
|
||||
80 [label="Try expression enter"];
|
||||
subgraph cluster_25 {
|
||||
color=blue
|
||||
81 [label="Try main block enter"];
|
||||
subgraph cluster_26 {
|
||||
color=blue
|
||||
82 [label="Enter block"];
|
||||
83 [label="Const: Int(1)"];
|
||||
84 [label="Exit block"];
|
||||
}
|
||||
85 [label="Try main block exit"];
|
||||
}
|
||||
subgraph cluster_27 {
|
||||
color=blue
|
||||
86 [label="Catch enter"];
|
||||
87 [label="Variable declaration: e: R|kotlin/Exception|"];
|
||||
subgraph cluster_28 {
|
||||
color=blue
|
||||
88 [label="Enter block"];
|
||||
89 [label="Const: Int(2)"];
|
||||
90 [label="Exit block"];
|
||||
}
|
||||
91 [label="Catch exit"];
|
||||
}
|
||||
subgraph cluster_29 {
|
||||
color=blue
|
||||
92 [label="Enter finally"];
|
||||
subgraph cluster_30 {
|
||||
color=blue
|
||||
93 [label="Enter block"];
|
||||
94 [label="Const: Int(0)"];
|
||||
95 [label="Exit block"];
|
||||
}
|
||||
96 [label="Exit finally"];
|
||||
}
|
||||
97 [label="Try expression exit"];
|
||||
72 [label="Enter block"];
|
||||
73 [label="Const: Int(1)"];
|
||||
74 [label="Jump: ^ Int(1)"];
|
||||
75 [label="Stub" style="filled" fillcolor=gray];
|
||||
76 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
98 [label="Exit property" style="filled" fillcolor=red];
|
||||
77 [label="Exit function <getter>" style="filled" fillcolor=red];
|
||||
}
|
||||
71 -> {72};
|
||||
72 -> {73};
|
||||
73 -> {74};
|
||||
74 -> {77};
|
||||
74 -> {75} [style=dotted];
|
||||
75 -> {76} [style=dotted];
|
||||
76 -> {77} [style=dotted];
|
||||
|
||||
subgraph cluster_24 {
|
||||
color=red
|
||||
78 [label="Enter function <setter>" style="filled" fillcolor=red];
|
||||
subgraph cluster_25 {
|
||||
color=blue
|
||||
79 [label="Enter block"];
|
||||
80 [label="Const: Int(1)"];
|
||||
81 [label="Assignment: F|/x2|"];
|
||||
82 [label="Exit block"];
|
||||
}
|
||||
83 [label="Exit function <setter>" style="filled" fillcolor=red];
|
||||
}
|
||||
78 -> {79};
|
||||
79 -> {80};
|
||||
80 -> {81 86};
|
||||
80 -> {92} [label="onUncaughtException"];
|
||||
80 -> {81};
|
||||
81 -> {82};
|
||||
82 -> {83};
|
||||
83 -> {84};
|
||||
|
||||
subgraph cluster_26 {
|
||||
color=red
|
||||
84 [label="Enter function <getter>" style="filled" fillcolor=red];
|
||||
subgraph cluster_27 {
|
||||
color=blue
|
||||
85 [label="Enter block"];
|
||||
86 [label="Local class declaration"];
|
||||
87 [label="Exit block"];
|
||||
}
|
||||
88 [label="Exit function <getter>" style="filled" fillcolor=red];
|
||||
}
|
||||
subgraph cluster_28 {
|
||||
color=blue
|
||||
89 [label="Enter class GetterLocalClass" style="filled" fillcolor=red];
|
||||
subgraph cluster_29 {
|
||||
color=blue
|
||||
90 [label="Enter init block" style="filled" fillcolor=red];
|
||||
subgraph cluster_30 {
|
||||
color=blue
|
||||
91 [label="Enter block"];
|
||||
92 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
||||
93 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
||||
94 [label="Stub" style="filled" fillcolor=gray];
|
||||
95 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
96 [label="Exit init block" style="filled" fillcolor=gray];
|
||||
}
|
||||
subgraph cluster_31 {
|
||||
color=blue
|
||||
97 [label="Enter function <init>" style="filled" fillcolor=gray];
|
||||
98 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=gray];
|
||||
99 [label="Exit function <init>" style="filled" fillcolor=gray];
|
||||
}
|
||||
100 [label="Exit class GetterLocalClass" style="filled" fillcolor=gray];
|
||||
}
|
||||
84 -> {85};
|
||||
85 -> {86 92};
|
||||
86 -> {87};
|
||||
86 -> {92} [label="onUncaughtException"];
|
||||
85 -> {86};
|
||||
86 -> {87 89};
|
||||
86 -> {89} [style=dashed];
|
||||
87 -> {88};
|
||||
88 -> {89};
|
||||
89 -> {90};
|
||||
89 -> {97} [color=red];
|
||||
89 -> {100} [style=dotted];
|
||||
89 -> {90 97} [style=dashed];
|
||||
90 -> {91};
|
||||
91 -> {92};
|
||||
92 -> {93};
|
||||
93 -> {94};
|
||||
94 -> {95};
|
||||
95 -> {96};
|
||||
96 -> {97};
|
||||
97 -> {98};
|
||||
93 -> {94} [style=dotted];
|
||||
94 -> {95} [style=dotted];
|
||||
95 -> {96} [style=dotted];
|
||||
96 -> {97} [style=dotted];
|
||||
97 -> {98} [style=dotted];
|
||||
98 -> {99} [style=dotted];
|
||||
99 -> {100} [style=dotted];
|
||||
|
||||
}
|
||||
|
||||
+155
-148
@@ -5,205 +5,210 @@ digraph returnValuesFromLambda_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter class A" style="filled" fillcolor=red];
|
||||
1 [label="Exit class A" style="filled" fillcolor=red];
|
||||
0 [label="Enter file returnValuesFromLambda.kt" style="filled" fillcolor=red];
|
||||
1 [label="Exit file returnValuesFromLambda.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1} [color=green];
|
||||
|
||||
subgraph cluster_1 {
|
||||
color=red
|
||||
2 [label="Enter class B" style="filled" fillcolor=red];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
3 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
4 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
5 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
}
|
||||
6 [label="Exit class B" style="filled" fillcolor=red];
|
||||
2 [label="Enter class A" style="filled" fillcolor=red];
|
||||
3 [label="Exit class A" style="filled" fillcolor=red];
|
||||
}
|
||||
2 -> {3} [color=green];
|
||||
2 -> {6} [style=dotted];
|
||||
2 -> {3} [style=dashed];
|
||||
3 -> {4};
|
||||
4 -> {5};
|
||||
5 -> {6} [color=green];
|
||||
|
||||
subgraph cluster_3 {
|
||||
subgraph cluster_2 {
|
||||
color=red
|
||||
7 [label="Enter class C" style="filled" fillcolor=red];
|
||||
subgraph cluster_4 {
|
||||
4 [label="Enter class B" style="filled" fillcolor=red];
|
||||
subgraph cluster_3 {
|
||||
color=blue
|
||||
8 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
9 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
10 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
5 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
6 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
7 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
}
|
||||
11 [label="Exit class C" style="filled" fillcolor=red];
|
||||
8 [label="Exit class B" style="filled" fillcolor=red];
|
||||
}
|
||||
4 -> {5} [color=green];
|
||||
4 -> {8} [style=dotted];
|
||||
4 -> {5} [style=dashed];
|
||||
5 -> {6};
|
||||
6 -> {7};
|
||||
7 -> {8} [color=green];
|
||||
7 -> {11} [style=dotted];
|
||||
7 -> {8} [style=dashed];
|
||||
8 -> {9};
|
||||
9 -> {10};
|
||||
10 -> {11} [color=green];
|
||||
|
||||
subgraph cluster_5 {
|
||||
subgraph cluster_4 {
|
||||
color=red
|
||||
12 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||
subgraph cluster_6 {
|
||||
9 [label="Enter class C" style="filled" fillcolor=red];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
13 [label="Enter block"];
|
||||
14 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_7 {
|
||||
10 [label="Enter function <init>" style="filled" fillcolor=red];
|
||||
11 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
|
||||
12 [label="Exit function <init>" style="filled" fillcolor=red];
|
||||
}
|
||||
13 [label="Exit class C" style="filled" fillcolor=red];
|
||||
}
|
||||
9 -> {10} [color=green];
|
||||
9 -> {13} [style=dotted];
|
||||
9 -> {10} [style=dashed];
|
||||
10 -> {11};
|
||||
11 -> {12};
|
||||
12 -> {13} [color=green];
|
||||
|
||||
subgraph cluster_6 {
|
||||
color=red
|
||||
14 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
15 [label="Enter block"];
|
||||
16 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
15 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_8 {
|
||||
17 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
16 [label="Enter block"];
|
||||
subgraph cluster_9 {
|
||||
18 [label="Enter block"];
|
||||
subgraph cluster_10 {
|
||||
color=blue
|
||||
17 [label="Enter when"];
|
||||
subgraph cluster_10 {
|
||||
color=blue
|
||||
18 [label="Enter when branch condition "];
|
||||
19 [label="Access variable R|<local>/b|"];
|
||||
20 [label="Exit when branch condition"];
|
||||
}
|
||||
21 [label="Synthetic else branch"];
|
||||
22 [label="Enter when branch result"];
|
||||
19 [label="Enter when"];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
23 [label="Enter block"];
|
||||
24 [label="Function call: R|/B.B|()" style="filled" fillcolor=yellow];
|
||||
25 [label="Jump: ^@run R|/B.B|()"];
|
||||
26 [label="Stub" style="filled" fillcolor=gray];
|
||||
27 [label="Exit block" style="filled" fillcolor=gray];
|
||||
20 [label="Enter when branch condition "];
|
||||
21 [label="Access variable R|<local>/b|"];
|
||||
22 [label="Exit when branch condition"];
|
||||
}
|
||||
28 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
29 [label="Exit when"];
|
||||
23 [label="Synthetic else branch"];
|
||||
24 [label="Enter when branch result"];
|
||||
subgraph cluster_12 {
|
||||
color=blue
|
||||
25 [label="Enter block"];
|
||||
26 [label="Function call: R|/B.B|()" style="filled" fillcolor=yellow];
|
||||
27 [label="Jump: ^@run R|/B.B|()"];
|
||||
28 [label="Stub" style="filled" fillcolor=gray];
|
||||
29 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
30 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
31 [label="Exit when"];
|
||||
}
|
||||
30 [label="Function call: R|/C.C|()" style="filled" fillcolor=yellow];
|
||||
31 [label="Exit block"];
|
||||
32 [label="Function call: R|/C.C|()" style="filled" fillcolor=yellow];
|
||||
33 [label="Exit block"];
|
||||
}
|
||||
32 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
34 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
33 [label="Postponed exit from lambda"];
|
||||
34 [label="Function call: R|kotlin/run|<R|A|>(...)" style="filled" fillcolor=yellow];
|
||||
35 [label="Variable declaration: lval x: R|A|"];
|
||||
36 [label="Exit block"];
|
||||
35 [label="Postponed exit from lambda"];
|
||||
36 [label="Function call: R|kotlin/run|<R|A|>(...)" style="filled" fillcolor=yellow];
|
||||
37 [label="Variable declaration: lval x: R|A|"];
|
||||
38 [label="Exit block"];
|
||||
}
|
||||
37 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||
39 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||
}
|
||||
12 -> {13};
|
||||
13 -> {14};
|
||||
14 -> {15 34};
|
||||
14 -> {33} [style=dotted];
|
||||
14 -> {15} [style=dashed];
|
||||
14 -> {15};
|
||||
15 -> {16};
|
||||
16 -> {17};
|
||||
16 -> {17 36};
|
||||
16 -> {35} [style=dotted];
|
||||
16 -> {17} [style=dashed];
|
||||
17 -> {18};
|
||||
18 -> {19};
|
||||
19 -> {20};
|
||||
20 -> {21 22};
|
||||
21 -> {29};
|
||||
22 -> {23};
|
||||
23 -> {24};
|
||||
20 -> {21};
|
||||
21 -> {22};
|
||||
22 -> {23 24};
|
||||
23 -> {31};
|
||||
24 -> {25};
|
||||
25 -> {32};
|
||||
25 -> {26} [style=dotted];
|
||||
26 -> {27} [style=dotted];
|
||||
25 -> {26};
|
||||
26 -> {27};
|
||||
27 -> {34};
|
||||
27 -> {28} [style=dotted];
|
||||
28 -> {29} [style=dotted];
|
||||
29 -> {30};
|
||||
30 -> {31};
|
||||
29 -> {30} [style=dotted];
|
||||
30 -> {31} [style=dotted];
|
||||
31 -> {32};
|
||||
32 -> {33};
|
||||
33 -> {34};
|
||||
34 -> {35};
|
||||
35 -> {36};
|
||||
36 -> {37};
|
||||
|
||||
subgraph cluster_12 {
|
||||
color=red
|
||||
38 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||
subgraph cluster_13 {
|
||||
color=blue
|
||||
39 [label="Enter block"];
|
||||
40 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_14 {
|
||||
color=blue
|
||||
41 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_15 {
|
||||
color=blue
|
||||
42 [label="Enter block"];
|
||||
43 [label="Function call: R|/C.C|()" style="filled" fillcolor=yellow];
|
||||
44 [label="Jump: ^@run R|/C.C|()"];
|
||||
45 [label="Stub" style="filled" fillcolor=gray];
|
||||
46 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
47 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
48 [label="Postponed exit from lambda"];
|
||||
49 [label="Function call: R|kotlin/run|<R|C|>(...)" style="filled" fillcolor=yellow];
|
||||
50 [label="Variable declaration: lval x: R|C|"];
|
||||
51 [label="Exit block"];
|
||||
}
|
||||
52 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||
}
|
||||
37 -> {38};
|
||||
38 -> {39};
|
||||
39 -> {40};
|
||||
40 -> {41 49};
|
||||
40 -> {48} [style=dotted];
|
||||
40 -> {41} [style=dashed];
|
||||
|
||||
subgraph cluster_13 {
|
||||
color=red
|
||||
40 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||
subgraph cluster_14 {
|
||||
color=blue
|
||||
41 [label="Enter block"];
|
||||
42 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_15 {
|
||||
color=blue
|
||||
43 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_16 {
|
||||
color=blue
|
||||
44 [label="Enter block"];
|
||||
45 [label="Function call: R|/C.C|()" style="filled" fillcolor=yellow];
|
||||
46 [label="Jump: ^@run R|/C.C|()"];
|
||||
47 [label="Stub" style="filled" fillcolor=gray];
|
||||
48 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
49 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
||||
}
|
||||
50 [label="Postponed exit from lambda"];
|
||||
51 [label="Function call: R|kotlin/run|<R|C|>(...)" style="filled" fillcolor=yellow];
|
||||
52 [label="Variable declaration: lval x: R|C|"];
|
||||
53 [label="Exit block"];
|
||||
}
|
||||
54 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||
}
|
||||
40 -> {41};
|
||||
41 -> {42};
|
||||
42 -> {43};
|
||||
42 -> {43 51};
|
||||
42 -> {50} [style=dotted];
|
||||
42 -> {43} [style=dashed];
|
||||
43 -> {44};
|
||||
44 -> {47};
|
||||
44 -> {45} [style=dotted];
|
||||
45 -> {46} [style=dotted];
|
||||
44 -> {45};
|
||||
45 -> {46};
|
||||
46 -> {49};
|
||||
46 -> {47} [style=dotted];
|
||||
47 -> {48};
|
||||
48 -> {49};
|
||||
47 -> {48} [style=dotted];
|
||||
48 -> {49} [style=dotted];
|
||||
49 -> {50};
|
||||
50 -> {51};
|
||||
51 -> {52};
|
||||
|
||||
subgraph cluster_16 {
|
||||
color=red
|
||||
53 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||
subgraph cluster_17 {
|
||||
color=blue
|
||||
54 [label="Enter block"];
|
||||
55 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_18 {
|
||||
color=blue
|
||||
56 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_19 {
|
||||
color=blue
|
||||
57 [label="Enter block"];
|
||||
58 [label="Jump: ^test_3 Unit"];
|
||||
59 [label="Stub" style="filled" fillcolor=gray];
|
||||
60 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
61 [label="Exit function <anonymous>" style="filled" fillcolor=gray];
|
||||
}
|
||||
62 [label="Postponed exit from lambda" style="filled" fillcolor=gray];
|
||||
63 [label="Function call: R|kotlin/run|<R|kotlin/Nothing|>(...)" style="filled" fillcolor=gray];
|
||||
64 [label="Stub" style="filled" fillcolor=gray];
|
||||
65 [label="Variable declaration: lval x: R|kotlin/Nothing|" style="filled" fillcolor=gray];
|
||||
66 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
67 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||
}
|
||||
52 -> {53};
|
||||
53 -> {54};
|
||||
54 -> {55};
|
||||
|
||||
subgraph cluster_17 {
|
||||
color=red
|
||||
55 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||
subgraph cluster_18 {
|
||||
color=blue
|
||||
56 [label="Enter block"];
|
||||
57 [label="Postponed enter to lambda"];
|
||||
subgraph cluster_19 {
|
||||
color=blue
|
||||
58 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
||||
subgraph cluster_20 {
|
||||
color=blue
|
||||
59 [label="Enter block"];
|
||||
60 [label="Jump: ^test_3 Unit"];
|
||||
61 [label="Stub" style="filled" fillcolor=gray];
|
||||
62 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
63 [label="Exit function <anonymous>" style="filled" fillcolor=gray];
|
||||
}
|
||||
64 [label="Postponed exit from lambda" style="filled" fillcolor=gray];
|
||||
65 [label="Function call: R|kotlin/run|<R|kotlin/Nothing|>(...)" style="filled" fillcolor=gray];
|
||||
66 [label="Stub" style="filled" fillcolor=gray];
|
||||
67 [label="Variable declaration: lval x: R|kotlin/Nothing|" style="filled" fillcolor=gray];
|
||||
68 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
69 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||
}
|
||||
55 -> {56};
|
||||
55 -> {62 63} [style=dotted];
|
||||
55 -> {56} [style=dashed];
|
||||
56 -> {57};
|
||||
57 -> {58};
|
||||
58 -> {67};
|
||||
58 -> {59} [style=dotted];
|
||||
59 -> {60} [style=dotted];
|
||||
57 -> {64 65} [style=dotted];
|
||||
57 -> {58} [style=dashed];
|
||||
58 -> {59};
|
||||
59 -> {60};
|
||||
60 -> {69};
|
||||
60 -> {61} [style=dotted];
|
||||
61 -> {62} [style=dotted];
|
||||
62 -> {63} [style=dotted];
|
||||
@@ -211,5 +216,7 @@ digraph returnValuesFromLambda_kt {
|
||||
64 -> {65} [style=dotted];
|
||||
65 -> {66} [style=dotted];
|
||||
66 -> {67} [style=dotted];
|
||||
67 -> {68} [style=dotted];
|
||||
68 -> {69} [style=dotted];
|
||||
|
||||
}
|
||||
|
||||
+101
-94
@@ -5,145 +5,150 @@ digraph safeCalls_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter class A" style="filled" fillcolor=red];
|
||||
1 [label="Exit class A" style="filled" fillcolor=red];
|
||||
0 [label="Enter file safeCalls.kt" style="filled" fillcolor=red];
|
||||
1 [label="Exit file safeCalls.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1} [color=green];
|
||||
|
||||
subgraph cluster_1 {
|
||||
color=red
|
||||
2 [label="Enter function foo" style="filled" fillcolor=red];
|
||||
3 [label="Exit function foo" style="filled" fillcolor=red];
|
||||
2 [label="Enter class A" style="filled" fillcolor=red];
|
||||
3 [label="Exit class A" style="filled" fillcolor=red];
|
||||
}
|
||||
2 -> {3};
|
||||
2 -> {3} [color=green];
|
||||
|
||||
subgraph cluster_2 {
|
||||
color=red
|
||||
4 [label="Enter function bar" style="filled" fillcolor=red];
|
||||
5 [label="Exit function bar" style="filled" fillcolor=red];
|
||||
4 [label="Enter function foo" style="filled" fillcolor=red];
|
||||
5 [label="Exit function foo" style="filled" fillcolor=red];
|
||||
}
|
||||
4 -> {5};
|
||||
|
||||
subgraph cluster_3 {
|
||||
color=red
|
||||
6 [label="Enter class B" style="filled" fillcolor=red];
|
||||
7 [label="Exit class B" style="filled" fillcolor=red];
|
||||
6 [label="Enter function bar" style="filled" fillcolor=red];
|
||||
7 [label="Exit function bar" style="filled" fillcolor=red];
|
||||
}
|
||||
6 -> {7} [color=green];
|
||||
6 -> {7};
|
||||
|
||||
subgraph cluster_4 {
|
||||
color=red
|
||||
8 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||
subgraph cluster_5 {
|
||||
8 [label="Enter class B" style="filled" fillcolor=red];
|
||||
9 [label="Exit class B" style="filled" fillcolor=red];
|
||||
}
|
||||
8 -> {9} [color=green];
|
||||
|
||||
subgraph cluster_5 {
|
||||
color=red
|
||||
10 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
9 [label="Enter block"];
|
||||
10 [label="Access variable R|<local>/x|"];
|
||||
11 [label="Enter safe call"];
|
||||
12 [label="Function call: $subj$.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||
11 [label="Enter block"];
|
||||
12 [label="Access variable R|<local>/x|"];
|
||||
13 [label="Enter safe call"];
|
||||
14 [label="Const: String()"];
|
||||
15 [label="Function call: $subj$.R|/A.bar|(...)" style="filled" fillcolor=yellow];
|
||||
16 [label="Exit safe call"];
|
||||
17 [label="Exit safe call"];
|
||||
18 [label="Exit block"];
|
||||
14 [label="Function call: $subj$.R|/A.foo|()" style="filled" fillcolor=yellow];
|
||||
15 [label="Enter safe call"];
|
||||
16 [label="Const: String()"];
|
||||
17 [label="Function call: $subj$.R|/A.bar|(...)" style="filled" fillcolor=yellow];
|
||||
18 [label="Exit safe call"];
|
||||
19 [label="Exit safe call"];
|
||||
20 [label="Exit block"];
|
||||
}
|
||||
19 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||
21 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||
}
|
||||
8 -> {9};
|
||||
9 -> {10};
|
||||
10 -> {11 16};
|
||||
10 -> {11};
|
||||
11 -> {12};
|
||||
12 -> {13 16};
|
||||
12 -> {13 18};
|
||||
13 -> {14};
|
||||
14 -> {15};
|
||||
15 -> {17};
|
||||
14 -> {15 18};
|
||||
15 -> {16};
|
||||
16 -> {17};
|
||||
17 -> {18};
|
||||
17 -> {19};
|
||||
18 -> {19};
|
||||
|
||||
subgraph cluster_6 {
|
||||
color=red
|
||||
20 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
21 [label="Enter block"];
|
||||
22 [label="Access variable R|<local>/x|"];
|
||||
23 [label="Enter safe call"];
|
||||
24 [label="Access variable R|/B.foo|"];
|
||||
25 [label="Enter safe call"];
|
||||
26 [label="Access variable R|/B.bar|"];
|
||||
27 [label="Exit safe call"];
|
||||
28 [label="Exit safe call"];
|
||||
29 [label="Exit block"];
|
||||
}
|
||||
30 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||
}
|
||||
19 -> {20};
|
||||
20 -> {21};
|
||||
21 -> {22};
|
||||
22 -> {23 27};
|
||||
23 -> {24};
|
||||
24 -> {25 27};
|
||||
25 -> {26};
|
||||
26 -> {28};
|
||||
27 -> {28};
|
||||
28 -> {29};
|
||||
29 -> {30};
|
||||
|
||||
subgraph cluster_8 {
|
||||
subgraph cluster_7 {
|
||||
color=red
|
||||
31 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||
subgraph cluster_9 {
|
||||
22 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
32 [label="Enter block"];
|
||||
subgraph cluster_10 {
|
||||
23 [label="Enter block"];
|
||||
24 [label="Access variable R|<local>/x|"];
|
||||
25 [label="Enter safe call"];
|
||||
26 [label="Access variable R|/B.foo|"];
|
||||
27 [label="Enter safe call"];
|
||||
28 [label="Access variable R|/B.bar|"];
|
||||
29 [label="Exit safe call"];
|
||||
30 [label="Exit safe call"];
|
||||
31 [label="Exit block"];
|
||||
}
|
||||
32 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||
}
|
||||
22 -> {23};
|
||||
23 -> {24};
|
||||
24 -> {25 29};
|
||||
25 -> {26};
|
||||
26 -> {27 29};
|
||||
27 -> {28};
|
||||
28 -> {30};
|
||||
29 -> {30};
|
||||
30 -> {31};
|
||||
31 -> {32};
|
||||
|
||||
subgraph cluster_9 {
|
||||
color=red
|
||||
33 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||
subgraph cluster_10 {
|
||||
color=blue
|
||||
34 [label="Enter block"];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
33 [label="Enter when"];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
34 [label="Enter when branch condition "];
|
||||
35 [label="Access variable R|<local>/x|"];
|
||||
36 [label="Enter safe call"];
|
||||
37 [label="Access variable R|<local>/y|"];
|
||||
38 [label="Type operator: (R|<local>/y| as R|kotlin/String|)"];
|
||||
39 [label="Function call: $subj$.R|/A.bar|(...)" style="filled" fillcolor=yellow];
|
||||
40 [label="Exit safe call"];
|
||||
41 [label="Const: Null(null)"];
|
||||
42 [label="Equality operator !="];
|
||||
43 [label="Exit when branch condition"];
|
||||
}
|
||||
44 [label="Synthetic else branch"];
|
||||
45 [label="Enter when branch result"];
|
||||
35 [label="Enter when"];
|
||||
subgraph cluster_12 {
|
||||
color=blue
|
||||
46 [label="Enter block"];
|
||||
47 [label="Access variable R|<local>/y|"];
|
||||
48 [label="Smart cast: R|<local>/y|"];
|
||||
49 [label="Access variable R|kotlin/String.length|"];
|
||||
50 [label="Exit block"];
|
||||
36 [label="Enter when branch condition "];
|
||||
37 [label="Access variable R|<local>/x|"];
|
||||
38 [label="Enter safe call"];
|
||||
39 [label="Access variable R|<local>/y|"];
|
||||
40 [label="Type operator: (R|<local>/y| as R|kotlin/String|)"];
|
||||
41 [label="Function call: $subj$.R|/A.bar|(...)" style="filled" fillcolor=yellow];
|
||||
42 [label="Exit safe call"];
|
||||
43 [label="Const: Null(null)"];
|
||||
44 [label="Equality operator !="];
|
||||
45 [label="Exit when branch condition"];
|
||||
}
|
||||
51 [label="Exit when branch result"];
|
||||
52 [label="Exit when"];
|
||||
46 [label="Synthetic else branch"];
|
||||
47 [label="Enter when branch result"];
|
||||
subgraph cluster_13 {
|
||||
color=blue
|
||||
48 [label="Enter block"];
|
||||
49 [label="Access variable R|<local>/y|"];
|
||||
50 [label="Smart cast: R|<local>/y|"];
|
||||
51 [label="Access variable R|kotlin/String.length|"];
|
||||
52 [label="Exit block"];
|
||||
}
|
||||
53 [label="Exit when branch result"];
|
||||
54 [label="Exit when"];
|
||||
}
|
||||
53 [label="Exit block"];
|
||||
55 [label="Exit block"];
|
||||
}
|
||||
54 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||
56 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||
}
|
||||
31 -> {32};
|
||||
32 -> {33};
|
||||
33 -> {34};
|
||||
34 -> {35};
|
||||
35 -> {36 40};
|
||||
35 -> {36};
|
||||
36 -> {37};
|
||||
37 -> {38};
|
||||
37 -> {38 42};
|
||||
38 -> {39};
|
||||
39 -> {40};
|
||||
40 -> {41};
|
||||
41 -> {42};
|
||||
42 -> {43};
|
||||
43 -> {44 45};
|
||||
44 -> {52};
|
||||
45 -> {46};
|
||||
46 -> {47};
|
||||
43 -> {44};
|
||||
44 -> {45};
|
||||
45 -> {46 47};
|
||||
46 -> {54};
|
||||
47 -> {48};
|
||||
48 -> {49};
|
||||
49 -> {50};
|
||||
@@ -151,5 +156,7 @@ digraph safeCalls_kt {
|
||||
51 -> {52};
|
||||
52 -> {53};
|
||||
53 -> {54};
|
||||
54 -> {55};
|
||||
55 -> {56};
|
||||
|
||||
}
|
||||
|
||||
+31
-24
@@ -5,37 +5,42 @@ digraph simple_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter function foo" style="filled" fillcolor=red];
|
||||
subgraph cluster_1 {
|
||||
color=blue
|
||||
1 [label="Enter block"];
|
||||
2 [label="Exit block"];
|
||||
}
|
||||
3 [label="Exit function foo" style="filled" fillcolor=red];
|
||||
0 [label="Enter file simple.kt" style="filled" fillcolor=red];
|
||||
1 [label="Exit file simple.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1};
|
||||
1 -> {2};
|
||||
2 -> {3};
|
||||
0 -> {1} [color=green];
|
||||
|
||||
subgraph cluster_2 {
|
||||
subgraph cluster_1 {
|
||||
color=red
|
||||
4 [label="Enter function test" style="filled" fillcolor=red];
|
||||
subgraph cluster_3 {
|
||||
2 [label="Enter function foo" style="filled" fillcolor=red];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
5 [label="Enter block"];
|
||||
6 [label="Const: Int(1)"];
|
||||
7 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||
8 [label="Access variable R|<local>/x|"];
|
||||
9 [label="Const: Int(1)"];
|
||||
10 [label="Function call: R|<local>/x|.R|kotlin/Int.plus|(...)" style="filled" fillcolor=yellow];
|
||||
11 [label="Variable declaration: lval y: R|kotlin/Int|"];
|
||||
12 [label="Function call: R|/foo|()" style="filled" fillcolor=yellow];
|
||||
13 [label="Exit block"];
|
||||
3 [label="Enter block"];
|
||||
4 [label="Exit block"];
|
||||
}
|
||||
14 [label="Exit function test" style="filled" fillcolor=red];
|
||||
5 [label="Exit function foo" style="filled" fillcolor=red];
|
||||
}
|
||||
2 -> {3};
|
||||
3 -> {4};
|
||||
4 -> {5};
|
||||
5 -> {6};
|
||||
|
||||
subgraph cluster_3 {
|
||||
color=red
|
||||
6 [label="Enter function test" style="filled" fillcolor=red];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
7 [label="Enter block"];
|
||||
8 [label="Const: Int(1)"];
|
||||
9 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||
10 [label="Access variable R|<local>/x|"];
|
||||
11 [label="Const: Int(1)"];
|
||||
12 [label="Function call: R|<local>/x|.R|kotlin/Int.plus|(...)" style="filled" fillcolor=yellow];
|
||||
13 [label="Variable declaration: lval y: R|kotlin/Int|"];
|
||||
14 [label="Function call: R|/foo|()" style="filled" fillcolor=yellow];
|
||||
15 [label="Exit block"];
|
||||
}
|
||||
16 [label="Exit function test" style="filled" fillcolor=red];
|
||||
}
|
||||
6 -> {7};
|
||||
7 -> {8};
|
||||
8 -> {9};
|
||||
@@ -44,5 +49,7 @@ digraph simple_kt {
|
||||
11 -> {12};
|
||||
12 -> {13};
|
||||
13 -> {14};
|
||||
14 -> {15};
|
||||
15 -> {16};
|
||||
|
||||
}
|
||||
|
||||
+235
-228
@@ -5,75 +5,80 @@ digraph tryCatch_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||
subgraph cluster_1 {
|
||||
color=blue
|
||||
1 [label="Enter block"];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
2 [label="Try expression enter"];
|
||||
subgraph cluster_3 {
|
||||
color=blue
|
||||
3 [label="Try main block enter"];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
4 [label="Enter block"];
|
||||
5 [label="Const: Int(1)"];
|
||||
6 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||
7 [label="Exit block"];
|
||||
}
|
||||
8 [label="Try main block exit"];
|
||||
}
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
9 [label="Catch enter"];
|
||||
10 [label="Variable declaration: e: R|kotlin/RuntimeException|"];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
11 [label="Enter block"];
|
||||
12 [label="Const: Int(2)"];
|
||||
13 [label="Variable declaration: lval y: R|kotlin/Int|"];
|
||||
14 [label="Exit block"];
|
||||
}
|
||||
15 [label="Catch exit"];
|
||||
}
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
16 [label="Catch enter"];
|
||||
17 [label="Variable declaration: e: R|kotlin/Exception|"];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
18 [label="Enter block"];
|
||||
19 [label="Const: Int(3)"];
|
||||
20 [label="Variable declaration: lval z: R|kotlin/Int|"];
|
||||
21 [label="Exit block"];
|
||||
}
|
||||
22 [label="Catch exit"];
|
||||
}
|
||||
23 [label="Try expression exit"];
|
||||
}
|
||||
24 [label="Exit block"];
|
||||
}
|
||||
25 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||
0 [label="Enter file tryCatch.kt" style="filled" fillcolor=red];
|
||||
1 [label="Exit file tryCatch.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1};
|
||||
1 -> {2};
|
||||
2 -> {3 9 16};
|
||||
0 -> {1} [color=green];
|
||||
|
||||
subgraph cluster_1 {
|
||||
color=red
|
||||
2 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
3 [label="Enter block"];
|
||||
subgraph cluster_3 {
|
||||
color=blue
|
||||
4 [label="Try expression enter"];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
5 [label="Try main block enter"];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
6 [label="Enter block"];
|
||||
7 [label="Const: Int(1)"];
|
||||
8 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||
9 [label="Exit block"];
|
||||
}
|
||||
10 [label="Try main block exit"];
|
||||
}
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
11 [label="Catch enter"];
|
||||
12 [label="Variable declaration: e: R|kotlin/RuntimeException|"];
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
13 [label="Enter block"];
|
||||
14 [label="Const: Int(2)"];
|
||||
15 [label="Variable declaration: lval y: R|kotlin/Int|"];
|
||||
16 [label="Exit block"];
|
||||
}
|
||||
17 [label="Catch exit"];
|
||||
}
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
18 [label="Catch enter"];
|
||||
19 [label="Variable declaration: e: R|kotlin/Exception|"];
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
20 [label="Enter block"];
|
||||
21 [label="Const: Int(3)"];
|
||||
22 [label="Variable declaration: lval z: R|kotlin/Int|"];
|
||||
23 [label="Exit block"];
|
||||
}
|
||||
24 [label="Catch exit"];
|
||||
}
|
||||
25 [label="Try expression exit"];
|
||||
}
|
||||
26 [label="Exit block"];
|
||||
}
|
||||
27 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||
}
|
||||
2 -> {3};
|
||||
3 -> {4};
|
||||
4 -> {5};
|
||||
4 -> {5 11 18};
|
||||
5 -> {6};
|
||||
6 -> {7};
|
||||
7 -> {8};
|
||||
8 -> {9 16 23};
|
||||
8 -> {9};
|
||||
9 -> {10};
|
||||
10 -> {11};
|
||||
10 -> {11 18 25};
|
||||
11 -> {12};
|
||||
12 -> {13};
|
||||
13 -> {14};
|
||||
14 -> {15};
|
||||
15 -> {23};
|
||||
15 -> {16};
|
||||
16 -> {17};
|
||||
17 -> {18};
|
||||
17 -> {25};
|
||||
18 -> {19};
|
||||
19 -> {20};
|
||||
20 -> {21};
|
||||
@@ -81,56 +86,56 @@ digraph tryCatch_kt {
|
||||
22 -> {23};
|
||||
23 -> {24};
|
||||
24 -> {25};
|
||||
|
||||
subgraph cluster_9 {
|
||||
color=red
|
||||
26 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||
subgraph cluster_10 {
|
||||
color=blue
|
||||
27 [label="Enter block"];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
28 [label="Try expression enter"];
|
||||
subgraph cluster_12 {
|
||||
color=blue
|
||||
29 [label="Try main block enter"];
|
||||
subgraph cluster_13 {
|
||||
color=blue
|
||||
30 [label="Enter block"];
|
||||
31 [label="Const: Int(1)"];
|
||||
32 [label="Exit block"];
|
||||
}
|
||||
33 [label="Try main block exit"];
|
||||
}
|
||||
subgraph cluster_14 {
|
||||
color=blue
|
||||
34 [label="Catch enter"];
|
||||
35 [label="Variable declaration: e: R|kotlin/Exception|"];
|
||||
subgraph cluster_15 {
|
||||
color=blue
|
||||
36 [label="Enter block"];
|
||||
37 [label="Const: Int(2)"];
|
||||
38 [label="Exit block"];
|
||||
}
|
||||
39 [label="Catch exit"];
|
||||
}
|
||||
40 [label="Try expression exit"];
|
||||
}
|
||||
41 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||
42 [label="Exit block"];
|
||||
}
|
||||
43 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||
}
|
||||
25 -> {26};
|
||||
26 -> {27};
|
||||
27 -> {28};
|
||||
28 -> {29 34};
|
||||
|
||||
subgraph cluster_10 {
|
||||
color=red
|
||||
28 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
29 [label="Enter block"];
|
||||
subgraph cluster_12 {
|
||||
color=blue
|
||||
30 [label="Try expression enter"];
|
||||
subgraph cluster_13 {
|
||||
color=blue
|
||||
31 [label="Try main block enter"];
|
||||
subgraph cluster_14 {
|
||||
color=blue
|
||||
32 [label="Enter block"];
|
||||
33 [label="Const: Int(1)"];
|
||||
34 [label="Exit block"];
|
||||
}
|
||||
35 [label="Try main block exit"];
|
||||
}
|
||||
subgraph cluster_15 {
|
||||
color=blue
|
||||
36 [label="Catch enter"];
|
||||
37 [label="Variable declaration: e: R|kotlin/Exception|"];
|
||||
subgraph cluster_16 {
|
||||
color=blue
|
||||
38 [label="Enter block"];
|
||||
39 [label="Const: Int(2)"];
|
||||
40 [label="Exit block"];
|
||||
}
|
||||
41 [label="Catch exit"];
|
||||
}
|
||||
42 [label="Try expression exit"];
|
||||
}
|
||||
43 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||
44 [label="Exit block"];
|
||||
}
|
||||
45 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||
}
|
||||
28 -> {29};
|
||||
29 -> {30};
|
||||
30 -> {31};
|
||||
30 -> {31 36};
|
||||
31 -> {32};
|
||||
32 -> {33};
|
||||
33 -> {34 40};
|
||||
33 -> {34};
|
||||
34 -> {35};
|
||||
35 -> {36};
|
||||
35 -> {36 42};
|
||||
36 -> {37};
|
||||
37 -> {38};
|
||||
38 -> {39};
|
||||
@@ -138,195 +143,197 @@ digraph tryCatch_kt {
|
||||
40 -> {41};
|
||||
41 -> {42};
|
||||
42 -> {43};
|
||||
43 -> {44};
|
||||
44 -> {45};
|
||||
|
||||
subgraph cluster_16 {
|
||||
subgraph cluster_17 {
|
||||
color=red
|
||||
44 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||
subgraph cluster_17 {
|
||||
46 [label="Enter function test_3" style="filled" fillcolor=red];
|
||||
subgraph cluster_18 {
|
||||
color=blue
|
||||
45 [label="Enter block"];
|
||||
subgraph cluster_18 {
|
||||
47 [label="Enter block"];
|
||||
subgraph cluster_19 {
|
||||
color=blue
|
||||
46 [label="Enter while loop"];
|
||||
subgraph cluster_19 {
|
||||
color=blue
|
||||
47 [label="Enter loop condition"];
|
||||
48 [label="Const: Boolean(true)"];
|
||||
49 [label="Exit loop condition"];
|
||||
}
|
||||
48 [label="Enter while loop"];
|
||||
subgraph cluster_20 {
|
||||
color=blue
|
||||
50 [label="Enter loop block"];
|
||||
subgraph cluster_21 {
|
||||
49 [label="Enter loop condition"];
|
||||
50 [label="Const: Boolean(true)"];
|
||||
51 [label="Exit loop condition"];
|
||||
}
|
||||
subgraph cluster_21 {
|
||||
color=blue
|
||||
52 [label="Enter loop block"];
|
||||
subgraph cluster_22 {
|
||||
color=blue
|
||||
51 [label="Enter block"];
|
||||
subgraph cluster_22 {
|
||||
53 [label="Enter block"];
|
||||
subgraph cluster_23 {
|
||||
color=blue
|
||||
52 [label="Try expression enter"];
|
||||
subgraph cluster_23 {
|
||||
54 [label="Try expression enter"];
|
||||
subgraph cluster_24 {
|
||||
color=blue
|
||||
53 [label="Try main block enter"];
|
||||
subgraph cluster_24 {
|
||||
55 [label="Try main block enter"];
|
||||
subgraph cluster_25 {
|
||||
color=blue
|
||||
54 [label="Enter block"];
|
||||
subgraph cluster_25 {
|
||||
56 [label="Enter block"];
|
||||
subgraph cluster_26 {
|
||||
color=blue
|
||||
55 [label="Enter when"];
|
||||
subgraph cluster_26 {
|
||||
color=blue
|
||||
56 [label="Enter when branch condition "];
|
||||
57 [label="Access variable R|<local>/b|"];
|
||||
58 [label="Exit when branch condition"];
|
||||
}
|
||||
59 [label="Synthetic else branch"];
|
||||
60 [label="Enter when branch result"];
|
||||
57 [label="Enter when"];
|
||||
subgraph cluster_27 {
|
||||
color=blue
|
||||
61 [label="Enter block"];
|
||||
62 [label="Jump: ^test_3 Unit"];
|
||||
63 [label="Stub" style="filled" fillcolor=gray];
|
||||
64 [label="Exit block" style="filled" fillcolor=gray];
|
||||
58 [label="Enter when branch condition "];
|
||||
59 [label="Access variable R|<local>/b|"];
|
||||
60 [label="Exit when branch condition"];
|
||||
}
|
||||
65 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
66 [label="Exit when"];
|
||||
}
|
||||
67 [label="Const: Int(1)"];
|
||||
68 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||
subgraph cluster_28 {
|
||||
color=blue
|
||||
69 [label="Enter when"];
|
||||
subgraph cluster_29 {
|
||||
61 [label="Synthetic else branch"];
|
||||
62 [label="Enter when branch result"];
|
||||
subgraph cluster_28 {
|
||||
color=blue
|
||||
70 [label="Enter when branch condition "];
|
||||
71 [label="Access variable R|<local>/b|"];
|
||||
72 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
||||
73 [label="Exit when branch condition"];
|
||||
63 [label="Enter block"];
|
||||
64 [label="Jump: ^test_3 Unit"];
|
||||
65 [label="Stub" style="filled" fillcolor=gray];
|
||||
66 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
74 [label="Synthetic else branch"];
|
||||
75 [label="Enter when branch result"];
|
||||
67 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
68 [label="Exit when"];
|
||||
}
|
||||
69 [label="Const: Int(1)"];
|
||||
70 [label="Variable declaration: lval x: R|kotlin/Int|"];
|
||||
subgraph cluster_29 {
|
||||
color=blue
|
||||
71 [label="Enter when"];
|
||||
subgraph cluster_30 {
|
||||
color=blue
|
||||
76 [label="Enter block"];
|
||||
77 [label="Jump: break@@@[Boolean(true)] "];
|
||||
78 [label="Stub" style="filled" fillcolor=gray];
|
||||
79 [label="Exit block" style="filled" fillcolor=gray];
|
||||
72 [label="Enter when branch condition "];
|
||||
73 [label="Access variable R|<local>/b|"];
|
||||
74 [label="Function call: R|<local>/b|.R|kotlin/Boolean.not|()" style="filled" fillcolor=yellow];
|
||||
75 [label="Exit when branch condition"];
|
||||
}
|
||||
80 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
81 [label="Exit when"];
|
||||
76 [label="Synthetic else branch"];
|
||||
77 [label="Enter when branch result"];
|
||||
subgraph cluster_31 {
|
||||
color=blue
|
||||
78 [label="Enter block"];
|
||||
79 [label="Jump: break@@@[Boolean(true)] "];
|
||||
80 [label="Stub" style="filled" fillcolor=gray];
|
||||
81 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
82 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
83 [label="Exit when"];
|
||||
}
|
||||
82 [label="Exit block"];
|
||||
84 [label="Exit block"];
|
||||
}
|
||||
83 [label="Try main block exit"];
|
||||
85 [label="Try main block exit"];
|
||||
}
|
||||
subgraph cluster_31 {
|
||||
subgraph cluster_32 {
|
||||
color=blue
|
||||
84 [label="Catch enter"];
|
||||
85 [label="Variable declaration: e: R|kotlin/RuntimeException|"];
|
||||
subgraph cluster_32 {
|
||||
86 [label="Catch enter"];
|
||||
87 [label="Variable declaration: e: R|kotlin/RuntimeException|"];
|
||||
subgraph cluster_33 {
|
||||
color=blue
|
||||
86 [label="Enter block"];
|
||||
87 [label="Jump: break@@@[Boolean(true)] "];
|
||||
88 [label="Stub" style="filled" fillcolor=gray];
|
||||
89 [label="Exit block" style="filled" fillcolor=gray];
|
||||
88 [label="Enter block"];
|
||||
89 [label="Jump: break@@@[Boolean(true)] "];
|
||||
90 [label="Stub" style="filled" fillcolor=gray];
|
||||
91 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
90 [label="Catch exit" style="filled" fillcolor=gray];
|
||||
92 [label="Catch exit" style="filled" fillcolor=gray];
|
||||
}
|
||||
subgraph cluster_33 {
|
||||
subgraph cluster_34 {
|
||||
color=blue
|
||||
91 [label="Catch enter"];
|
||||
92 [label="Variable declaration: e: R|kotlin/Exception|"];
|
||||
subgraph cluster_34 {
|
||||
93 [label="Catch enter"];
|
||||
94 [label="Variable declaration: e: R|kotlin/Exception|"];
|
||||
subgraph cluster_35 {
|
||||
color=blue
|
||||
93 [label="Enter block"];
|
||||
94 [label="Jump: continue@@@[Boolean(true)] "];
|
||||
95 [label="Stub" style="filled" fillcolor=gray];
|
||||
96 [label="Exit block" style="filled" fillcolor=gray];
|
||||
95 [label="Enter block"];
|
||||
96 [label="Jump: continue@@@[Boolean(true)] "];
|
||||
97 [label="Stub" style="filled" fillcolor=gray];
|
||||
98 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
97 [label="Catch exit" style="filled" fillcolor=gray];
|
||||
99 [label="Catch exit" style="filled" fillcolor=gray];
|
||||
}
|
||||
98 [label="Try expression exit"];
|
||||
100 [label="Try expression exit"];
|
||||
}
|
||||
99 [label="Const: Int(2)"];
|
||||
100 [label="Variable declaration: lval y: R|kotlin/Int|"];
|
||||
101 [label="Exit block"];
|
||||
101 [label="Const: Int(2)"];
|
||||
102 [label="Variable declaration: lval y: R|kotlin/Int|"];
|
||||
103 [label="Exit block"];
|
||||
}
|
||||
102 [label="Exit loop block"];
|
||||
104 [label="Exit loop block"];
|
||||
}
|
||||
103 [label="Exit while loop"];
|
||||
105 [label="Exit while loop"];
|
||||
}
|
||||
104 [label="Const: Int(3)"];
|
||||
105 [label="Variable declaration: lval z: R|kotlin/Int|"];
|
||||
106 [label="Exit block"];
|
||||
106 [label="Const: Int(3)"];
|
||||
107 [label="Variable declaration: lval z: R|kotlin/Int|"];
|
||||
108 [label="Exit block"];
|
||||
}
|
||||
107 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||
109 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||
}
|
||||
44 -> {45};
|
||||
45 -> {46};
|
||||
46 -> {47};
|
||||
47 -> {48};
|
||||
48 -> {49};
|
||||
49 -> {50};
|
||||
49 -> {103} [style=dotted];
|
||||
50 -> {51};
|
||||
51 -> {52};
|
||||
52 -> {53 84 91};
|
||||
51 -> {105} [style=dotted];
|
||||
52 -> {53};
|
||||
53 -> {54};
|
||||
54 -> {55};
|
||||
54 -> {55 86 93};
|
||||
55 -> {56};
|
||||
56 -> {57};
|
||||
57 -> {58};
|
||||
58 -> {59 60};
|
||||
59 -> {66};
|
||||
60 -> {61};
|
||||
61 -> {62};
|
||||
62 -> {107};
|
||||
62 -> {63} [style=dotted];
|
||||
63 -> {64} [style=dotted];
|
||||
58 -> {59};
|
||||
59 -> {60};
|
||||
60 -> {61 62};
|
||||
61 -> {68};
|
||||
62 -> {63};
|
||||
63 -> {64};
|
||||
64 -> {109};
|
||||
64 -> {65} [style=dotted];
|
||||
65 -> {66} [style=dotted];
|
||||
66 -> {67};
|
||||
67 -> {68};
|
||||
66 -> {67} [style=dotted];
|
||||
67 -> {68} [style=dotted];
|
||||
68 -> {69};
|
||||
69 -> {70};
|
||||
70 -> {71};
|
||||
71 -> {72};
|
||||
72 -> {73 84 91};
|
||||
73 -> {74 75};
|
||||
74 -> {81};
|
||||
75 -> {76};
|
||||
76 -> {77};
|
||||
77 -> {103};
|
||||
77 -> {78} [style=dotted];
|
||||
78 -> {79} [style=dotted];
|
||||
72 -> {73};
|
||||
73 -> {74};
|
||||
74 -> {75 86 93};
|
||||
75 -> {76 77};
|
||||
76 -> {83};
|
||||
77 -> {78};
|
||||
78 -> {79};
|
||||
79 -> {105};
|
||||
79 -> {80} [style=dotted];
|
||||
80 -> {81} [style=dotted];
|
||||
81 -> {82};
|
||||
82 -> {83};
|
||||
83 -> {84 91 98};
|
||||
81 -> {82} [style=dotted];
|
||||
82 -> {83} [style=dotted];
|
||||
83 -> {84};
|
||||
84 -> {85};
|
||||
85 -> {86};
|
||||
85 -> {86 93 100};
|
||||
86 -> {87};
|
||||
87 -> {103};
|
||||
87 -> {88} [style=dotted];
|
||||
88 -> {89} [style=dotted];
|
||||
87 -> {88};
|
||||
88 -> {89};
|
||||
89 -> {105};
|
||||
89 -> {90} [style=dotted];
|
||||
90 -> {98} [style=dotted];
|
||||
91 -> {92};
|
||||
92 -> {93};
|
||||
90 -> {91} [style=dotted];
|
||||
91 -> {92} [style=dotted];
|
||||
92 -> {100} [style=dotted];
|
||||
93 -> {94};
|
||||
94 -> {47} [color=green style=dashed];
|
||||
94 -> {95} [style=dotted];
|
||||
95 -> {96} [style=dotted];
|
||||
94 -> {95};
|
||||
95 -> {96};
|
||||
96 -> {49} [color=green style=dashed];
|
||||
96 -> {97} [style=dotted];
|
||||
97 -> {98} [style=dotted];
|
||||
98 -> {99};
|
||||
99 -> {100};
|
||||
98 -> {99} [style=dotted];
|
||||
99 -> {100} [style=dotted];
|
||||
100 -> {101};
|
||||
101 -> {102};
|
||||
102 -> {47} [color=green style=dashed];
|
||||
102 -> {103};
|
||||
103 -> {104};
|
||||
104 -> {105};
|
||||
104 -> {49} [color=green style=dashed];
|
||||
105 -> {106};
|
||||
106 -> {107};
|
||||
107 -> {108};
|
||||
108 -> {109};
|
||||
|
||||
}
|
||||
|
||||
+96
-89
@@ -5,127 +5,134 @@ digraph variableInitializedInTryBlock_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter function test" style="filled" fillcolor=red];
|
||||
subgraph cluster_1 {
|
||||
color=blue
|
||||
1 [label="Enter block"];
|
||||
2 [label="Variable declaration: lval b: R|kotlin/Boolean|"];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
3 [label="Try expression enter"];
|
||||
subgraph cluster_3 {
|
||||
color=blue
|
||||
4 [label="Try main block enter"];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
5 [label="Enter block"];
|
||||
6 [label="Function call: R|/getStringOrNull|()" style="filled" fillcolor=yellow];
|
||||
7 [label="Exit lhs of ?:"];
|
||||
8 [label="Enter rhs of ?:"];
|
||||
9 [label="Jump: ^test Unit"];
|
||||
10 [label="Stub" style="filled" fillcolor=gray];
|
||||
11 [label="Lhs of ?: is not null"];
|
||||
12 [label="Exit ?:"];
|
||||
13 [label="Variable declaration: lval s: R|kotlin/String|"];
|
||||
14 [label="Access variable R|<local>/s|"];
|
||||
15 [label="Access variable R|kotlin/String.length|"];
|
||||
16 [label="Const: Int(0)"];
|
||||
17 [label="Equality operator !="];
|
||||
18 [label="Assignment: R|<local>/b|"];
|
||||
19 [label="Exit block"];
|
||||
}
|
||||
20 [label="Try main block exit"];
|
||||
}
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
21 [label="Enter finally"];
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
22 [label="Enter block"];
|
||||
23 [label="Function call: R|/test|()" style="filled" fillcolor=yellow];
|
||||
24 [label="Exit block"];
|
||||
}
|
||||
25 [label="Exit finally"];
|
||||
}
|
||||
26 [label="Try expression exit"];
|
||||
}
|
||||
27 [label="Access variable R|<local>/b|"];
|
||||
28 [label="Function call: R|/takeBoolean|(...)" style="filled" fillcolor=yellow];
|
||||
29 [label="Exit block"];
|
||||
}
|
||||
30 [label="Exit function test" style="filled" fillcolor=red];
|
||||
0 [label="Enter file variableInitializedInTryBlock.kt" style="filled" fillcolor=red];
|
||||
1 [label="Exit file variableInitializedInTryBlock.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1} [color=green];
|
||||
|
||||
subgraph cluster_1 {
|
||||
color=red
|
||||
2 [label="Enter function test" style="filled" fillcolor=red];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
3 [label="Enter block"];
|
||||
4 [label="Variable declaration: lval b: R|kotlin/Boolean|"];
|
||||
subgraph cluster_3 {
|
||||
color=blue
|
||||
5 [label="Try expression enter"];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
6 [label="Try main block enter"];
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
7 [label="Enter block"];
|
||||
8 [label="Function call: R|/getStringOrNull|()" style="filled" fillcolor=yellow];
|
||||
9 [label="Exit lhs of ?:"];
|
||||
10 [label="Enter rhs of ?:"];
|
||||
11 [label="Jump: ^test Unit"];
|
||||
12 [label="Stub" style="filled" fillcolor=gray];
|
||||
13 [label="Lhs of ?: is not null"];
|
||||
14 [label="Exit ?:"];
|
||||
15 [label="Variable declaration: lval s: R|kotlin/String|"];
|
||||
16 [label="Access variable R|<local>/s|"];
|
||||
17 [label="Access variable R|kotlin/String.length|"];
|
||||
18 [label="Const: Int(0)"];
|
||||
19 [label="Equality operator !="];
|
||||
20 [label="Assignment: R|<local>/b|"];
|
||||
21 [label="Exit block"];
|
||||
}
|
||||
22 [label="Try main block exit"];
|
||||
}
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
23 [label="Enter finally"];
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
24 [label="Enter block"];
|
||||
25 [label="Function call: R|/test|()" style="filled" fillcolor=yellow];
|
||||
26 [label="Exit block"];
|
||||
}
|
||||
27 [label="Exit finally"];
|
||||
}
|
||||
28 [label="Try expression exit"];
|
||||
}
|
||||
29 [label="Access variable R|<local>/b|"];
|
||||
30 [label="Function call: R|/takeBoolean|(...)" style="filled" fillcolor=yellow];
|
||||
31 [label="Exit block"];
|
||||
}
|
||||
32 [label="Exit function test" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1};
|
||||
1 -> {2};
|
||||
2 -> {3};
|
||||
3 -> {4};
|
||||
3 -> {21} [label="onUncaughtException"];
|
||||
4 -> {5};
|
||||
5 -> {6};
|
||||
5 -> {23} [label="onUncaughtException"];
|
||||
6 -> {7};
|
||||
6 -> {21} [label="onUncaughtException"];
|
||||
7 -> {8 11};
|
||||
7 -> {8};
|
||||
8 -> {9};
|
||||
9 -> {21} [label="return@/test"];
|
||||
9 -> {10} [style=dotted];
|
||||
10 -> {12} [style=dotted];
|
||||
11 -> {12};
|
||||
12 -> {13};
|
||||
8 -> {23} [label="onUncaughtException"];
|
||||
9 -> {10 13};
|
||||
10 -> {11};
|
||||
11 -> {23} [label="return@/test"];
|
||||
11 -> {12} [style=dotted];
|
||||
12 -> {14} [style=dotted];
|
||||
13 -> {14};
|
||||
14 -> {15};
|
||||
14 -> {21} [label="onUncaughtException"];
|
||||
15 -> {16};
|
||||
15 -> {21} [label="onUncaughtException"];
|
||||
16 -> {17};
|
||||
16 -> {23} [label="onUncaughtException"];
|
||||
17 -> {18};
|
||||
17 -> {21} [label="onUncaughtException"];
|
||||
17 -> {23} [label="onUncaughtException"];
|
||||
18 -> {19};
|
||||
19 -> {20};
|
||||
19 -> {23} [label="onUncaughtException"];
|
||||
20 -> {21};
|
||||
21 -> {22};
|
||||
22 -> {23};
|
||||
23 -> {24};
|
||||
24 -> {25};
|
||||
25 -> {26};
|
||||
25 -> {30} [label="return@/test"];
|
||||
26 -> {27};
|
||||
27 -> {28};
|
||||
27 -> {32} [label="return@/test"];
|
||||
28 -> {29};
|
||||
29 -> {30};
|
||||
|
||||
subgraph cluster_7 {
|
||||
color=red
|
||||
31 [label="Enter function takeBoolean" style="filled" fillcolor=red];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
32 [label="Enter block"];
|
||||
33 [label="Exit block"];
|
||||
}
|
||||
34 [label="Exit function takeBoolean" style="filled" fillcolor=red];
|
||||
}
|
||||
30 -> {31};
|
||||
31 -> {32};
|
||||
32 -> {33};
|
||||
33 -> {34};
|
||||
|
||||
subgraph cluster_9 {
|
||||
subgraph cluster_8 {
|
||||
color=red
|
||||
35 [label="Enter function getStringOrNull" style="filled" fillcolor=red];
|
||||
subgraph cluster_10 {
|
||||
33 [label="Enter function takeBoolean" style="filled" fillcolor=red];
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
36 [label="Enter block"];
|
||||
37 [label="Const: String(hello)"];
|
||||
38 [label="Jump: ^getStringOrNull String(hello)"];
|
||||
39 [label="Stub" style="filled" fillcolor=gray];
|
||||
40 [label="Exit block" style="filled" fillcolor=gray];
|
||||
34 [label="Enter block"];
|
||||
35 [label="Exit block"];
|
||||
}
|
||||
41 [label="Exit function getStringOrNull" style="filled" fillcolor=red];
|
||||
36 [label="Exit function takeBoolean" style="filled" fillcolor=red];
|
||||
}
|
||||
33 -> {34};
|
||||
34 -> {35};
|
||||
35 -> {36};
|
||||
36 -> {37};
|
||||
|
||||
subgraph cluster_10 {
|
||||
color=red
|
||||
37 [label="Enter function getStringOrNull" style="filled" fillcolor=red];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
38 [label="Enter block"];
|
||||
39 [label="Const: String(hello)"];
|
||||
40 [label="Jump: ^getStringOrNull String(hello)"];
|
||||
41 [label="Stub" style="filled" fillcolor=gray];
|
||||
42 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
43 [label="Exit function getStringOrNull" style="filled" fillcolor=red];
|
||||
}
|
||||
37 -> {38};
|
||||
38 -> {41};
|
||||
38 -> {39} [style=dotted];
|
||||
39 -> {40} [style=dotted];
|
||||
38 -> {39};
|
||||
39 -> {40};
|
||||
40 -> {43};
|
||||
40 -> {41} [style=dotted];
|
||||
41 -> {42} [style=dotted];
|
||||
42 -> {43} [style=dotted];
|
||||
|
||||
}
|
||||
|
||||
+135
-128
@@ -5,210 +5,215 @@ digraph when_kt {
|
||||
|
||||
subgraph cluster_0 {
|
||||
color=red
|
||||
0 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||
subgraph cluster_1 {
|
||||
0 [label="Enter file when.kt" style="filled" fillcolor=red];
|
||||
1 [label="Exit file when.kt" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1} [color=green];
|
||||
|
||||
subgraph cluster_1 {
|
||||
color=red
|
||||
2 [label="Enter function test_1" style="filled" fillcolor=red];
|
||||
subgraph cluster_2 {
|
||||
color=blue
|
||||
1 [label="Enter block"];
|
||||
subgraph cluster_2 {
|
||||
3 [label="Enter block"];
|
||||
subgraph cluster_3 {
|
||||
color=blue
|
||||
2 [label="Enter when"];
|
||||
subgraph cluster_3 {
|
||||
color=blue
|
||||
3 [label="Enter when branch condition "];
|
||||
4 [label="Access variable R|<local>/x|"];
|
||||
5 [label="Const: Int(1)"];
|
||||
6 [label="Equality operator =="];
|
||||
7 [label="Exit when branch condition"];
|
||||
}
|
||||
4 [label="Enter when"];
|
||||
subgraph cluster_4 {
|
||||
color=blue
|
||||
8 [label="Enter when branch condition "];
|
||||
9 [label="Access variable R|<local>/x|"];
|
||||
10 [label="Const: Int(2)"];
|
||||
11 [label="Function call: R|<local>/x|.R|kotlin/Int.rem|(...)" style="filled" fillcolor=yellow];
|
||||
12 [label="Const: Int(0)"];
|
||||
13 [label="Equality operator =="];
|
||||
14 [label="Exit when branch condition"];
|
||||
5 [label="Enter when branch condition "];
|
||||
6 [label="Access variable R|<local>/x|"];
|
||||
7 [label="Const: Int(1)"];
|
||||
8 [label="Equality operator =="];
|
||||
9 [label="Exit when branch condition"];
|
||||
}
|
||||
subgraph cluster_5 {
|
||||
color=blue
|
||||
15 [label="Enter when branch condition "];
|
||||
16 [label="Const: Int(1)"];
|
||||
17 [label="Const: Int(1)"];
|
||||
18 [label="Function call: Int(1).R|kotlin/Int.minus|(...)" style="filled" fillcolor=yellow];
|
||||
19 [label="Const: Int(0)"];
|
||||
20 [label="Equality operator =="];
|
||||
21 [label="Exit when branch condition"];
|
||||
10 [label="Enter when branch condition "];
|
||||
11 [label="Access variable R|<local>/x|"];
|
||||
12 [label="Const: Int(2)"];
|
||||
13 [label="Function call: R|<local>/x|.R|kotlin/Int.rem|(...)" style="filled" fillcolor=yellow];
|
||||
14 [label="Const: Int(0)"];
|
||||
15 [label="Equality operator =="];
|
||||
16 [label="Exit when branch condition"];
|
||||
}
|
||||
subgraph cluster_6 {
|
||||
color=blue
|
||||
22 [label="Enter when branch condition else"];
|
||||
17 [label="Enter when branch condition "];
|
||||
18 [label="Const: Int(1)"];
|
||||
19 [label="Const: Int(1)"];
|
||||
20 [label="Function call: Int(1).R|kotlin/Int.minus|(...)" style="filled" fillcolor=yellow];
|
||||
21 [label="Const: Int(0)"];
|
||||
22 [label="Equality operator =="];
|
||||
23 [label="Exit when branch condition"];
|
||||
}
|
||||
24 [label="Enter when branch result"];
|
||||
subgraph cluster_7 {
|
||||
color=blue
|
||||
25 [label="Enter block"];
|
||||
26 [label="Const: Int(5)"];
|
||||
27 [label="Exit block"];
|
||||
24 [label="Enter when branch condition else"];
|
||||
25 [label="Exit when branch condition"];
|
||||
}
|
||||
28 [label="Exit when branch result"];
|
||||
29 [label="Enter when branch result"];
|
||||
26 [label="Enter when branch result"];
|
||||
subgraph cluster_8 {
|
||||
color=blue
|
||||
30 [label="Enter block"];
|
||||
31 [label="Jump: ^test_1 Unit"];
|
||||
32 [label="Stub" style="filled" fillcolor=gray];
|
||||
33 [label="Exit block" style="filled" fillcolor=gray];
|
||||
27 [label="Enter block"];
|
||||
28 [label="Const: Int(5)"];
|
||||
29 [label="Exit block"];
|
||||
}
|
||||
34 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
35 [label="Enter when branch result"];
|
||||
30 [label="Exit when branch result"];
|
||||
31 [label="Enter when branch result"];
|
||||
subgraph cluster_9 {
|
||||
color=blue
|
||||
36 [label="Enter block"];
|
||||
37 [label="Const: Int(20)"];
|
||||
38 [label="Exit block"];
|
||||
32 [label="Enter block"];
|
||||
33 [label="Jump: ^test_1 Unit"];
|
||||
34 [label="Stub" style="filled" fillcolor=gray];
|
||||
35 [label="Exit block" style="filled" fillcolor=gray];
|
||||
}
|
||||
39 [label="Exit when branch result"];
|
||||
40 [label="Enter when branch result"];
|
||||
36 [label="Exit when branch result" style="filled" fillcolor=gray];
|
||||
37 [label="Enter when branch result"];
|
||||
subgraph cluster_10 {
|
||||
color=blue
|
||||
41 [label="Enter block"];
|
||||
42 [label="Const: Int(10)"];
|
||||
43 [label="Exit block"];
|
||||
38 [label="Enter block"];
|
||||
39 [label="Const: Int(20)"];
|
||||
40 [label="Exit block"];
|
||||
}
|
||||
44 [label="Exit when branch result"];
|
||||
45 [label="Exit when"];
|
||||
41 [label="Exit when branch result"];
|
||||
42 [label="Enter when branch result"];
|
||||
subgraph cluster_11 {
|
||||
color=blue
|
||||
43 [label="Enter block"];
|
||||
44 [label="Const: Int(10)"];
|
||||
45 [label="Exit block"];
|
||||
}
|
||||
46 [label="Exit when branch result"];
|
||||
47 [label="Exit when"];
|
||||
}
|
||||
46 [label="Variable declaration: lval y: R|kotlin/Int|"];
|
||||
47 [label="Exit block"];
|
||||
48 [label="Variable declaration: lval y: R|kotlin/Int|"];
|
||||
49 [label="Exit block"];
|
||||
}
|
||||
48 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||
50 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||
}
|
||||
0 -> {1};
|
||||
1 -> {2};
|
||||
2 -> {3};
|
||||
3 -> {4};
|
||||
4 -> {5};
|
||||
5 -> {6};
|
||||
6 -> {7};
|
||||
7 -> {8 40};
|
||||
7 -> {8};
|
||||
8 -> {9};
|
||||
9 -> {10};
|
||||
9 -> {10 42};
|
||||
10 -> {11};
|
||||
11 -> {12};
|
||||
12 -> {13};
|
||||
13 -> {14};
|
||||
14 -> {15 35};
|
||||
14 -> {15};
|
||||
15 -> {16};
|
||||
16 -> {17};
|
||||
16 -> {17 37};
|
||||
17 -> {18};
|
||||
18 -> {19};
|
||||
19 -> {20};
|
||||
20 -> {21};
|
||||
21 -> {22 29};
|
||||
21 -> {22};
|
||||
22 -> {23};
|
||||
23 -> {24};
|
||||
23 -> {24 31};
|
||||
24 -> {25};
|
||||
25 -> {26};
|
||||
26 -> {27};
|
||||
27 -> {28};
|
||||
28 -> {45};
|
||||
28 -> {29};
|
||||
29 -> {30};
|
||||
30 -> {31};
|
||||
31 -> {48};
|
||||
31 -> {32} [style=dotted];
|
||||
32 -> {33} [style=dotted];
|
||||
30 -> {47};
|
||||
31 -> {32};
|
||||
32 -> {33};
|
||||
33 -> {50};
|
||||
33 -> {34} [style=dotted];
|
||||
34 -> {45} [style=dotted];
|
||||
35 -> {36};
|
||||
36 -> {37};
|
||||
34 -> {35} [style=dotted];
|
||||
35 -> {36} [style=dotted];
|
||||
36 -> {47} [style=dotted];
|
||||
37 -> {38};
|
||||
38 -> {39};
|
||||
39 -> {45};
|
||||
39 -> {40};
|
||||
40 -> {41};
|
||||
41 -> {42};
|
||||
41 -> {47};
|
||||
42 -> {43};
|
||||
43 -> {44};
|
||||
44 -> {45};
|
||||
45 -> {46};
|
||||
46 -> {47};
|
||||
47 -> {48};
|
||||
|
||||
subgraph cluster_11 {
|
||||
color=red
|
||||
49 [label="Enter class A" style="filled" fillcolor=red];
|
||||
50 [label="Exit class A" style="filled" fillcolor=red];
|
||||
}
|
||||
49 -> {50} [color=green];
|
||||
48 -> {49};
|
||||
49 -> {50};
|
||||
|
||||
subgraph cluster_12 {
|
||||
color=red
|
||||
51 [label="Enter class B" style="filled" fillcolor=red];
|
||||
52 [label="Exit class B" style="filled" fillcolor=red];
|
||||
51 [label="Enter class A" style="filled" fillcolor=red];
|
||||
52 [label="Exit class A" style="filled" fillcolor=red];
|
||||
}
|
||||
51 -> {52} [color=green];
|
||||
|
||||
subgraph cluster_13 {
|
||||
color=red
|
||||
53 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||
subgraph cluster_14 {
|
||||
color=blue
|
||||
54 [label="Enter block"];
|
||||
subgraph cluster_15 {
|
||||
color=blue
|
||||
55 [label="Enter when"];
|
||||
subgraph cluster_16 {
|
||||
color=blue
|
||||
56 [label="Enter when branch condition "];
|
||||
subgraph cluster_17 {
|
||||
color=blue
|
||||
57 [label="Enter &&"];
|
||||
58 [label="Access variable R|<local>/x|"];
|
||||
59 [label="Type operator: (R|<local>/x| is R|A|)"];
|
||||
60 [label="Exit left part of &&"];
|
||||
61 [label="Enter right part of &&"];
|
||||
62 [label="Access variable R|<local>/x|"];
|
||||
63 [label="Smart cast: R|<local>/x|"];
|
||||
64 [label="Type operator: (R|<local>/x| is R|B|)"];
|
||||
65 [label="Exit &&"];
|
||||
}
|
||||
66 [label="Exit when branch condition"];
|
||||
}
|
||||
67 [label="Synthetic else branch"];
|
||||
68 [label="Enter when branch result"];
|
||||
subgraph cluster_18 {
|
||||
color=blue
|
||||
69 [label="Enter block"];
|
||||
70 [label="Access variable R|<local>/x|"];
|
||||
71 [label="Smart cast: R|<local>/x|"];
|
||||
72 [label="Type operator: (R|<local>/x| is R|A|)"];
|
||||
73 [label="Exit block"];
|
||||
}
|
||||
74 [label="Exit when branch result"];
|
||||
75 [label="Exit when"];
|
||||
}
|
||||
76 [label="Exit block"];
|
||||
}
|
||||
77 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||
53 [label="Enter class B" style="filled" fillcolor=red];
|
||||
54 [label="Exit class B" style="filled" fillcolor=red];
|
||||
}
|
||||
53 -> {54} [color=green];
|
||||
|
||||
subgraph cluster_14 {
|
||||
color=red
|
||||
55 [label="Enter function test_2" style="filled" fillcolor=red];
|
||||
subgraph cluster_15 {
|
||||
color=blue
|
||||
56 [label="Enter block"];
|
||||
subgraph cluster_16 {
|
||||
color=blue
|
||||
57 [label="Enter when"];
|
||||
subgraph cluster_17 {
|
||||
color=blue
|
||||
58 [label="Enter when branch condition "];
|
||||
subgraph cluster_18 {
|
||||
color=blue
|
||||
59 [label="Enter &&"];
|
||||
60 [label="Access variable R|<local>/x|"];
|
||||
61 [label="Type operator: (R|<local>/x| is R|A|)"];
|
||||
62 [label="Exit left part of &&"];
|
||||
63 [label="Enter right part of &&"];
|
||||
64 [label="Access variable R|<local>/x|"];
|
||||
65 [label="Smart cast: R|<local>/x|"];
|
||||
66 [label="Type operator: (R|<local>/x| is R|B|)"];
|
||||
67 [label="Exit &&"];
|
||||
}
|
||||
68 [label="Exit when branch condition"];
|
||||
}
|
||||
69 [label="Synthetic else branch"];
|
||||
70 [label="Enter when branch result"];
|
||||
subgraph cluster_19 {
|
||||
color=blue
|
||||
71 [label="Enter block"];
|
||||
72 [label="Access variable R|<local>/x|"];
|
||||
73 [label="Smart cast: R|<local>/x|"];
|
||||
74 [label="Type operator: (R|<local>/x| is R|A|)"];
|
||||
75 [label="Exit block"];
|
||||
}
|
||||
76 [label="Exit when branch result"];
|
||||
77 [label="Exit when"];
|
||||
}
|
||||
78 [label="Exit block"];
|
||||
}
|
||||
79 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||
}
|
||||
53 -> {54};
|
||||
54 -> {55};
|
||||
55 -> {56};
|
||||
56 -> {57};
|
||||
57 -> {58};
|
||||
58 -> {59};
|
||||
59 -> {60};
|
||||
60 -> {61 65};
|
||||
60 -> {61};
|
||||
61 -> {62};
|
||||
62 -> {63};
|
||||
62 -> {63 67};
|
||||
63 -> {64};
|
||||
64 -> {65};
|
||||
65 -> {66};
|
||||
66 -> {67 68};
|
||||
67 -> {75};
|
||||
68 -> {69};
|
||||
69 -> {70};
|
||||
66 -> {67};
|
||||
67 -> {68};
|
||||
68 -> {69 70};
|
||||
69 -> {77};
|
||||
70 -> {71};
|
||||
71 -> {72};
|
||||
72 -> {73};
|
||||
@@ -216,5 +221,7 @@ digraph when_kt {
|
||||
74 -> {75};
|
||||
75 -> {76};
|
||||
76 -> {77};
|
||||
77 -> {78};
|
||||
78 -> {79};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user