b2041e0927
There are many complications with the current design of passing data from within in-place lambdas to surrounding code. Solving these complications will involve more time to investigation than is available within the K2 release. So we are disabling passing type statement information from lambdas for the time being until more time can be devoted to a more complete solution. ^KT-60958 Fixed ^KT-63530 Fixed
487 lines
17 KiB
Plaintext
Vendored
487 lines
17 KiB
Plaintext
Vendored
digraph jumps_kt {
|
|
graph [nodesep=3]
|
|
node [shape=box penwidth=2]
|
|
edge [penwidth=2]
|
|
|
|
subgraph cluster_0 {
|
|
color=red
|
|
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
|
|
3 [label="Enter block"];
|
|
subgraph cluster_3 {
|
|
color=blue
|
|
4 [label="Enter when"];
|
|
subgraph cluster_4 {
|
|
color=blue
|
|
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"];
|
|
}
|
|
subgraph cluster_5 {
|
|
color=blue
|
|
10 [label="Enter when branch condition else"];
|
|
11 [label="Exit when branch condition"];
|
|
}
|
|
12 [label="Enter when branch result"];
|
|
subgraph cluster_6 {
|
|
color=blue
|
|
13 [label="Enter block"];
|
|
14 [label="Access variable R|<local>/x|"];
|
|
15 [label="Smart cast: R|<local>/x|"];
|
|
16 [label="Exit block"];
|
|
}
|
|
17 [label="Exit when branch result"];
|
|
18 [label="Enter when branch result"];
|
|
subgraph cluster_7 {
|
|
color=blue
|
|
19 [label="Enter block"];
|
|
subgraph cluster_8 {
|
|
color=blue
|
|
20 [label="Function call arguments enter"];
|
|
21 [label="Function call arguments exit"];
|
|
}
|
|
22 [label="Function call: R|java/lang/Exception.Exception|()" style="filled" fillcolor=yellow];
|
|
23 [label="Throw: throw R|java/lang/Exception.Exception|()"];
|
|
24 [label="Stub" style="filled" fillcolor=gray];
|
|
25 [label="Exit block" style="filled" fillcolor=gray];
|
|
}
|
|
26 [label="Exit when branch result" style="filled" fillcolor=gray];
|
|
27 [label="Exit when"];
|
|
}
|
|
28 [label="Variable declaration: lval y: R|kotlin/Int|"];
|
|
subgraph cluster_9 {
|
|
color=blue
|
|
29 [label="Function call arguments enter"];
|
|
30 [label="Access variable R|<local>/y|"];
|
|
31 [label="Function call arguments exit"];
|
|
}
|
|
32 [label="Function call: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
|
subgraph cluster_10 {
|
|
color=blue
|
|
33 [label="Function call arguments enter"];
|
|
34 [label="Access variable R|<local>/x|"];
|
|
35 [label="Smart cast: R|<local>/x|"];
|
|
36 [label="Function call arguments exit"];
|
|
}
|
|
37 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
|
38 [label="Exit block"];
|
|
}
|
|
39 [label="Exit function test_1" style="filled" fillcolor=red];
|
|
}
|
|
2 -> {3};
|
|
3 -> {4};
|
|
4 -> {5};
|
|
5 -> {6};
|
|
6 -> {7};
|
|
7 -> {8};
|
|
8 -> {9};
|
|
9 -> {10 18};
|
|
10 -> {11};
|
|
11 -> {12};
|
|
12 -> {13};
|
|
13 -> {14};
|
|
14 -> {15};
|
|
15 -> {16};
|
|
16 -> {17};
|
|
17 -> {27};
|
|
18 -> {19};
|
|
19 -> {20};
|
|
20 -> {21};
|
|
21 -> {22};
|
|
22 -> {23};
|
|
23 -> {24} [style=dotted];
|
|
24 -> {25} [style=dotted];
|
|
25 -> {26} [style=dotted];
|
|
26 -> {27} [style=dotted];
|
|
27 -> {28};
|
|
28 -> {29};
|
|
29 -> {30};
|
|
30 -> {31};
|
|
31 -> {32};
|
|
32 -> {33};
|
|
33 -> {34};
|
|
34 -> {35};
|
|
35 -> {36};
|
|
36 -> {37};
|
|
37 -> {38};
|
|
38 -> {39};
|
|
|
|
subgraph cluster_11 {
|
|
color=red
|
|
40 [label="Enter function test_2" style="filled" fillcolor=red];
|
|
subgraph cluster_12 {
|
|
color=blue
|
|
41 [label="Enter block"];
|
|
subgraph cluster_13 {
|
|
color=blue
|
|
42 [label="Enter when"];
|
|
subgraph cluster_14 {
|
|
color=blue
|
|
43 [label="Enter when branch condition "];
|
|
44 [label="Access variable R|<local>/x|"];
|
|
45 [label="Const: Null(null)"];
|
|
46 [label="Equality operator =="];
|
|
47 [label="Exit when branch condition"];
|
|
}
|
|
subgraph cluster_15 {
|
|
color=blue
|
|
48 [label="Enter when branch condition else"];
|
|
49 [label="Exit when branch condition"];
|
|
}
|
|
50 [label="Enter when branch result"];
|
|
subgraph cluster_16 {
|
|
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="Enter when branch result"];
|
|
subgraph cluster_17 {
|
|
color=blue
|
|
57 [label="Enter block"];
|
|
58 [label="Access variable R|<local>/x|"];
|
|
59 [label="Smart cast: R|<local>/x|"];
|
|
60 [label="Exit block"];
|
|
}
|
|
61 [label="Exit when branch result"];
|
|
62 [label="Exit when"];
|
|
}
|
|
63 [label="Variable declaration: lval y: R|kotlin/Int?|"];
|
|
subgraph cluster_18 {
|
|
color=blue
|
|
64 [label="Function call arguments enter"];
|
|
65 [label="Access variable R|<local>/y|"];
|
|
66 [label="Function call arguments exit"];
|
|
}
|
|
67 [label="Function call: R|<local>/y|.R|kotlin/Int.inc<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#|()" style="filled" fillcolor=yellow];
|
|
68 [label="Exit block"];
|
|
}
|
|
69 [label="Exit function test_2" style="filled" fillcolor=red];
|
|
}
|
|
40 -> {41};
|
|
41 -> {42};
|
|
42 -> {43};
|
|
43 -> {44};
|
|
44 -> {45};
|
|
45 -> {46};
|
|
46 -> {47};
|
|
47 -> {48 56};
|
|
48 -> {49};
|
|
49 -> {50};
|
|
50 -> {51};
|
|
51 -> {52};
|
|
52 -> {53};
|
|
53 -> {54};
|
|
54 -> {55};
|
|
55 -> {62};
|
|
56 -> {57};
|
|
57 -> {58};
|
|
58 -> {59};
|
|
59 -> {60};
|
|
60 -> {61};
|
|
61 -> {62};
|
|
62 -> {63};
|
|
63 -> {64};
|
|
64 -> {65};
|
|
65 -> {66};
|
|
66 -> {67};
|
|
67 -> {68};
|
|
68 -> {69};
|
|
|
|
subgraph cluster_19 {
|
|
color=red
|
|
70 [label="Enter function test_3" style="filled" fillcolor=red];
|
|
subgraph cluster_20 {
|
|
color=blue
|
|
71 [label="Enter block"];
|
|
subgraph cluster_21 {
|
|
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"];
|
|
}
|
|
subgraph cluster_23 {
|
|
color=blue
|
|
76 [label="Enter loop block"];
|
|
subgraph cluster_24 {
|
|
color=blue
|
|
77 [label="Enter block"];
|
|
78 [label="Access variable R|<local>/x|"];
|
|
79 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
|
|
80 [label="Jump: break@@@[Boolean(true)] "];
|
|
81 [label="Stub" style="filled" fillcolor=gray];
|
|
82 [label="Exit block" style="filled" fillcolor=gray];
|
|
}
|
|
83 [label="Exit loop block" style="filled" fillcolor=gray];
|
|
}
|
|
84 [label="Exit while loop"];
|
|
}
|
|
subgraph cluster_25 {
|
|
color=blue
|
|
85 [label="Function call arguments enter"];
|
|
86 [label="Access variable R|<local>/x|"];
|
|
87 [label="Smart cast: R|<local>/x|"];
|
|
88 [label="Function call arguments exit"];
|
|
}
|
|
89 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
|
90 [label="Exit block"];
|
|
}
|
|
91 [label="Exit function test_3" style="filled" fillcolor=red];
|
|
}
|
|
70 -> {71};
|
|
71 -> {72};
|
|
72 -> {73};
|
|
73 -> {74};
|
|
74 -> {75};
|
|
75 -> {76};
|
|
75 -> {84} [style=dotted];
|
|
76 -> {77};
|
|
77 -> {78};
|
|
78 -> {79};
|
|
79 -> {80};
|
|
80 -> {84};
|
|
80 -> {81} [style=dotted];
|
|
81 -> {82} [style=dotted];
|
|
82 -> {83} [style=dotted];
|
|
83 -> {73} [color=green style=dotted];
|
|
84 -> {85};
|
|
85 -> {86};
|
|
86 -> {87};
|
|
87 -> {88};
|
|
88 -> {89};
|
|
89 -> {90};
|
|
90 -> {91};
|
|
|
|
subgraph cluster_26 {
|
|
color=red
|
|
92 [label="Enter function test_4" style="filled" fillcolor=red];
|
|
subgraph cluster_27 {
|
|
color=blue
|
|
93 [label="Enter block"];
|
|
subgraph cluster_28 {
|
|
color=blue
|
|
94 [label="Enter do-while loop"];
|
|
subgraph cluster_29 {
|
|
color=blue
|
|
95 [label="Enter loop block"];
|
|
subgraph cluster_30 {
|
|
color=blue
|
|
96 [label="Enter block"];
|
|
97 [label="Access variable R|<local>/x|"];
|
|
98 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
|
|
99 [label="Jump: break@@@[Boolean(true)] "];
|
|
100 [label="Stub" style="filled" fillcolor=gray];
|
|
101 [label="Exit block" style="filled" fillcolor=gray];
|
|
}
|
|
102 [label="Exit loop block" style="filled" fillcolor=gray];
|
|
}
|
|
subgraph cluster_31 {
|
|
color=blue
|
|
103 [label="Enter loop condition" style="filled" fillcolor=gray];
|
|
104 [label="Const: Boolean(true)" style="filled" fillcolor=gray];
|
|
105 [label="Exit loop condition" style="filled" fillcolor=gray];
|
|
}
|
|
106 [label="Exit do-while loop"];
|
|
}
|
|
subgraph cluster_32 {
|
|
color=blue
|
|
107 [label="Function call arguments enter"];
|
|
108 [label="Access variable R|<local>/x|"];
|
|
109 [label="Smart cast: R|<local>/x|"];
|
|
110 [label="Function call arguments exit"];
|
|
}
|
|
111 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
|
|
112 [label="Exit block"];
|
|
}
|
|
113 [label="Exit function test_4" style="filled" fillcolor=red];
|
|
}
|
|
92 -> {93};
|
|
93 -> {94};
|
|
94 -> {95};
|
|
95 -> {96};
|
|
96 -> {97};
|
|
97 -> {98};
|
|
98 -> {99};
|
|
99 -> {106};
|
|
99 -> {100} [style=dotted];
|
|
100 -> {101} [style=dotted];
|
|
101 -> {102} [style=dotted];
|
|
102 -> {103} [style=dotted];
|
|
103 -> {104} [style=dotted];
|
|
104 -> {105} [style=dotted];
|
|
105 -> {95} [color=green style=dotted];
|
|
105 -> {106} [style=dotted];
|
|
106 -> {107};
|
|
107 -> {108};
|
|
108 -> {109};
|
|
109 -> {110};
|
|
110 -> {111};
|
|
111 -> {112};
|
|
112 -> {113};
|
|
|
|
subgraph cluster_33 {
|
|
color=red
|
|
114 [label="Enter function test_5" style="filled" fillcolor=red];
|
|
subgraph cluster_34 {
|
|
color=blue
|
|
115 [label="Enter block"];
|
|
subgraph cluster_35 {
|
|
color=blue
|
|
116 [label="Enter while loop"];
|
|
subgraph cluster_36 {
|
|
color=blue
|
|
117 [label="Enter loop condition"];
|
|
118 [label="Access variable R|<local>/b|"];
|
|
119 [label="Exit loop condition"];
|
|
}
|
|
subgraph cluster_37 {
|
|
color=blue
|
|
120 [label="Enter loop block"];
|
|
subgraph cluster_38 {
|
|
color=blue
|
|
121 [label="Enter block"];
|
|
subgraph cluster_39 {
|
|
color=blue
|
|
122 [label="Enter when"];
|
|
subgraph cluster_40 {
|
|
color=blue
|
|
123 [label="Enter when branch condition "];
|
|
124 [label="Access variable R|<local>/b|"];
|
|
125 [label="Exit when branch condition"];
|
|
}
|
|
126 [label="Synthetic else branch"];
|
|
127 [label="Enter when branch result"];
|
|
subgraph cluster_41 {
|
|
color=blue
|
|
128 [label="Enter block"];
|
|
129 [label="Jump: continue@@@[R|<local>/b|] "];
|
|
130 [label="Stub" style="filled" fillcolor=gray];
|
|
131 [label="Exit block" style="filled" fillcolor=gray];
|
|
}
|
|
132 [label="Exit when branch result" style="filled" fillcolor=gray];
|
|
133 [label="Exit when"];
|
|
}
|
|
134 [label="Exit block"];
|
|
}
|
|
135 [label="Exit loop block"];
|
|
}
|
|
136 [label="Exit while loop"];
|
|
}
|
|
137 [label="Exit block"];
|
|
}
|
|
138 [label="Exit function test_5" style="filled" fillcolor=red];
|
|
}
|
|
114 -> {115};
|
|
115 -> {116};
|
|
116 -> {117};
|
|
117 -> {118};
|
|
118 -> {119};
|
|
119 -> {120 136};
|
|
120 -> {121};
|
|
121 -> {122};
|
|
122 -> {123};
|
|
123 -> {124};
|
|
124 -> {125};
|
|
125 -> {126 127};
|
|
126 -> {133};
|
|
127 -> {128};
|
|
128 -> {129};
|
|
129 -> {117} [color=green style=dashed];
|
|
129 -> {130} [style=dotted];
|
|
130 -> {131} [style=dotted];
|
|
131 -> {132} [style=dotted];
|
|
132 -> {133} [style=dotted];
|
|
133 -> {134};
|
|
134 -> {135};
|
|
135 -> {117} [color=green style=dashed];
|
|
136 -> {137};
|
|
137 -> {138};
|
|
|
|
subgraph cluster_42 {
|
|
color=red
|
|
139 [label="Enter function run" style="filled" fillcolor=red];
|
|
subgraph cluster_43 {
|
|
color=blue
|
|
140 [label="Enter block"];
|
|
subgraph cluster_44 {
|
|
color=blue
|
|
141 [label="Function call arguments enter"];
|
|
142 [label="Function call arguments exit"];
|
|
}
|
|
143 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
|
|
144 [label="Exit block"];
|
|
}
|
|
145 [label="Exit function run" style="filled" fillcolor=red];
|
|
}
|
|
139 -> {140};
|
|
140 -> {141};
|
|
141 -> {142};
|
|
142 -> {143};
|
|
143 -> {144};
|
|
144 -> {145};
|
|
|
|
subgraph cluster_45 {
|
|
color=red
|
|
146 [label="Enter function test_6" style="filled" fillcolor=red];
|
|
subgraph cluster_46 {
|
|
color=blue
|
|
147 [label="Enter block"];
|
|
subgraph cluster_47 {
|
|
color=blue
|
|
148 [label="Function call arguments enter"];
|
|
149 [label="Postponed enter to lambda"];
|
|
subgraph cluster_48 {
|
|
color=blue
|
|
150 [label="Enter function <anonymous>" style="filled" fillcolor=red];
|
|
subgraph cluster_49 {
|
|
color=blue
|
|
151 [label="Enter block"];
|
|
152 [label="Jump: ^@run Unit"];
|
|
153 [label="Stub" style="filled" fillcolor=gray];
|
|
154 [label="Exit block" style="filled" fillcolor=gray];
|
|
}
|
|
155 [label="Exit function <anonymous>" style="filled" fillcolor=red];
|
|
}
|
|
156 [label="Function call arguments exit"];
|
|
}
|
|
157 [label="Postponed exit from lambda"];
|
|
158 [label="Function call: R|/run|(...)" style="filled" fillcolor=yellow];
|
|
159 [label="Exit block"];
|
|
}
|
|
160 [label="Exit function test_6" style="filled" fillcolor=red];
|
|
}
|
|
146 -> {147};
|
|
147 -> {148};
|
|
148 -> {149};
|
|
149 -> {150 156 157};
|
|
149 -> {150} [style=dashed];
|
|
150 -> {151};
|
|
151 -> {152};
|
|
152 -> {155};
|
|
152 -> {153} [style=dotted];
|
|
153 -> {154} [style=dotted];
|
|
154 -> {155} [style=dotted];
|
|
155 -> {157};
|
|
156 -> {158};
|
|
157 -> {149} [color=green style=dashed];
|
|
157 -> {158} [label="Postponed"];
|
|
158 -> {159};
|
|
159 -> {160};
|
|
|
|
}
|