Files
Brian Norman b2041e0927 [FIR] Disable data flow from in-place lambdas
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
2023-12-14 16:40:27 +00:00

1215 lines
50 KiB
Plaintext
Vendored

digraph flowFromInplaceLambda2_kt {
graph [nodesep=3]
node [shape=box penwidth=2]
edge [penwidth=2]
subgraph cluster_0 {
color=red
0 [label="Enter file flowFromInplaceLambda2.kt" style="filled" fillcolor=red];
1 [label="Exit file flowFromInplaceLambda2.kt" style="filled" fillcolor=red];
}
0 -> {1} [color=green];
subgraph cluster_1 {
color=red
2 [label="Enter function foo" style="filled" fillcolor=red];
subgraph cluster_2 {
color=blue
3 [label="Enter block"];
4 [label="Exit block"];
}
5 [label="Exit function foo" style="filled" fillcolor=red];
}
2 -> {3};
3 -> {4};
4 -> {5};
subgraph cluster_3 {
color=red
6 [label="Enter function id" style="filled" fillcolor=red];
subgraph cluster_4 {
color=blue
7 [label="Enter block"];
8 [label="Access variable R|<local>/x|"];
9 [label="Jump: ^id R|<local>/x|"];
10 [label="Stub" style="filled" fillcolor=gray];
11 [label="Exit block" style="filled" fillcolor=gray];
}
12 [label="Exit function id" style="filled" fillcolor=red];
}
6 -> {7};
7 -> {8};
8 -> {9};
9 -> {12};
9 -> {10} [style=dotted];
10 -> {11} [style=dotted];
11 -> {12} [style=dotted];
subgraph cluster_5 {
color=red
13 [label="Enter function n" style="filled" fillcolor=red];
subgraph cluster_6 {
color=blue
14 [label="Enter block"];
15 [label="Const: Null(null)"];
16 [label="Jump: ^n Null(null)"];
17 [label="Stub" style="filled" fillcolor=gray];
18 [label="Exit block" style="filled" fillcolor=gray];
}
19 [label="Exit function n" style="filled" fillcolor=red];
}
13 -> {14};
14 -> {15};
15 -> {16};
16 -> {19};
16 -> {17} [style=dotted];
17 -> {18} [style=dotted];
18 -> {19} [style=dotted];
subgraph cluster_7 {
color=red
20 [label="Enter function someCompletedCall" style="filled" fillcolor=red];
subgraph cluster_8 {
color=blue
21 [label="Enter block"];
22 [label="Access variable R|<local>/arg|"];
23 [label="Jump: ^someCompletedCall R|<local>/arg|"];
24 [label="Stub" style="filled" fillcolor=gray];
25 [label="Exit block" style="filled" fillcolor=gray];
}
26 [label="Exit function someCompletedCall" style="filled" fillcolor=red];
}
20 -> {21};
21 -> {22};
22 -> {23};
23 -> {26};
23 -> {24} [style=dotted];
24 -> {25} [style=dotted];
25 -> {26} [style=dotted];
subgraph cluster_9 {
color=red
27 [label="Enter function test1" style="filled" fillcolor=red];
subgraph cluster_10 {
color=blue
28 [label="Enter block"];
subgraph cluster_11 {
color=blue
29 [label="Function call arguments enter"];
subgraph cluster_12 {
color=blue
30 [label="Function call arguments enter"];
subgraph cluster_13 {
color=blue
31 [label="Function call arguments enter"];
32 [label="Postponed enter to lambda"];
subgraph cluster_14 {
color=blue
33 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_15 {
color=blue
34 [label="Enter block"];
35 [label="Access variable R|<local>/x|"];
36 [label="Type operator: (R|<local>/x| as R|kotlin/String|)"];
subgraph cluster_16 {
color=blue
37 [label="Function call arguments enter"];
38 [label="Function call arguments exit"];
}
39 [label="Function call: R|/n|<R|kotlin/Int?|>()" style="filled" fillcolor=yellow];
40 [label="Exit block"];
}
41 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
42 [label="Function call arguments exit"];
}
43 [label="Postponed exit from lambda"];
44 [label="Function call: R|kotlin/run|<R|kotlin/Int?|>(...)" style="filled" fillcolor=yellow];
45 [label="Function call arguments exit"];
}
46 [label="Function call: R|/id|<R|kotlin/Int?|>(...)" style="filled" fillcolor=yellow];
47 [label="Const: Int(1)"];
subgraph cluster_17 {
color=blue
48 [label="Function call arguments enter"];
49 [label="Postponed enter to lambda"];
subgraph cluster_18 {
color=blue
50 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_19 {
color=blue
51 [label="Enter block"];
52 [label="Access variable R|<local>/x|"];
53 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
54 [label="Const: Int(123)"];
55 [label="Exit block"];
}
56 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
57 [label="Function call arguments exit"];
}
58 [label="Postponed exit from lambda"];
59 [label="Function call: R|kotlin/run|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
60 [label="Function call arguments exit"];
}
61 [label="Function call: R|/foo|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
62 [label="Access variable R|<local>/x|"];
63 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
64 [label="Exit block"];
}
65 [label="Exit function test1" style="filled" fillcolor=red];
}
27 -> {28};
28 -> {29};
29 -> {30};
30 -> {31};
31 -> {32};
32 -> {33 42};
32 -> {43} [style=dotted];
32 -> {33} [style=dashed];
33 -> {34};
34 -> {35};
35 -> {36};
36 -> {37};
37 -> {38};
38 -> {39};
39 -> {40};
40 -> {41};
41 -> {43};
42 -> {44};
43 -> {44} [color=green];
43 -> {61} [color=red label="Postponed"];
44 -> {45};
45 -> {46};
46 -> {47};
47 -> {48};
48 -> {49};
49 -> {50 57};
49 -> {58} [style=dotted];
49 -> {50} [style=dashed];
50 -> {51};
51 -> {52};
52 -> {53};
53 -> {54};
54 -> {55};
55 -> {56};
56 -> {58};
57 -> {59};
58 -> {59} [color=green];
58 -> {61} [color=red label="Postponed"];
59 -> {60};
60 -> {61};
61 -> {62};
62 -> {63};
63 -> {64};
64 -> {65};
subgraph cluster_20 {
color=red
66 [label="Enter function test2" style="filled" fillcolor=red];
subgraph cluster_21 {
color=blue
67 [label="Enter block"];
subgraph cluster_22 {
color=blue
68 [label="Function call arguments enter"];
subgraph cluster_23 {
color=blue
69 [label="Function call arguments enter"];
subgraph cluster_24 {
color=blue
70 [label="Function call arguments enter"];
71 [label="Postponed enter to lambda"];
subgraph cluster_25 {
color=blue
72 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_26 {
color=blue
73 [label="Enter block"];
74 [label="Access variable R|<local>/x|"];
75 [label="Type operator: (R|<local>/x| as R|kotlin/String|)"];
subgraph cluster_27 {
color=blue
76 [label="Function call arguments enter"];
77 [label="Function call arguments exit"];
}
78 [label="Function call: R|/n|<R|kotlin/Int?|>()" style="filled" fillcolor=yellow];
79 [label="Exit block"];
}
80 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
81 [label="Function call arguments exit"];
}
82 [label="Postponed exit from lambda"];
83 [label="Function call: R|kotlin/run|<R|kotlin/Int?|>(...)" style="filled" fillcolor=yellow];
84 [label="Function call arguments exit"];
}
85 [label="Function call: R|/id|<R|kotlin/Int?|>(...)" style="filled" fillcolor=yellow];
subgraph cluster_28 {
color=blue
86 [label="Function call arguments enter"];
87 [label="Const: Int(1)"];
88 [label="Function call arguments exit"];
}
89 [label="Function call: R|/someCompletedCall|(...)" style="filled" fillcolor=yellow];
subgraph cluster_29 {
color=blue
90 [label="Function call arguments enter"];
91 [label="Postponed enter to lambda"];
subgraph cluster_30 {
color=blue
92 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_31 {
color=blue
93 [label="Enter block"];
94 [label="Access variable R|<local>/x|"];
95 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
96 [label="Const: Int(123)"];
97 [label="Exit block"];
}
98 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
99 [label="Function call arguments exit"];
}
100 [label="Postponed exit from lambda"];
101 [label="Function call: R|kotlin/run|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
102 [label="Function call arguments exit"];
}
103 [label="Function call: R|/foo|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
104 [label="Access variable R|<local>/x|"];
105 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
106 [label="Exit block"];
}
107 [label="Exit function test2" style="filled" fillcolor=red];
}
66 -> {67};
67 -> {68};
68 -> {69};
69 -> {70};
70 -> {71};
71 -> {72 81};
71 -> {82} [style=dotted];
71 -> {72} [style=dashed];
72 -> {73};
73 -> {74};
74 -> {75};
75 -> {76};
76 -> {77};
77 -> {78};
78 -> {79};
79 -> {80};
80 -> {82};
81 -> {83};
82 -> {83} [color=green];
82 -> {103} [color=red label="Postponed"];
83 -> {84};
84 -> {85};
85 -> {86};
86 -> {87};
87 -> {88};
88 -> {89};
89 -> {90};
90 -> {91};
91 -> {92 99};
91 -> {100} [style=dotted];
91 -> {92} [style=dashed];
92 -> {93};
93 -> {94};
94 -> {95};
95 -> {96};
96 -> {97};
97 -> {98};
98 -> {100};
99 -> {101};
100 -> {101} [color=green];
100 -> {103} [color=red label="Postponed"];
101 -> {102};
102 -> {103};
103 -> {104};
104 -> {105};
105 -> {106};
106 -> {107};
subgraph cluster_32 {
color=red
108 [label="Enter function test3" style="filled" fillcolor=red];
subgraph cluster_33 {
color=blue
109 [label="Enter block"];
subgraph cluster_34 {
color=blue
110 [label="Function call arguments enter"];
subgraph cluster_35 {
color=blue
111 [label="Function call arguments enter"];
subgraph cluster_36 {
color=blue
112 [label="Function call arguments enter"];
113 [label="Postponed enter to lambda"];
subgraph cluster_37 {
color=blue
114 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_38 {
color=blue
115 [label="Enter block"];
116 [label="Access variable R|<local>/x|"];
117 [label="Type operator: (R|<local>/x| as R|kotlin/String|)"];
subgraph cluster_39 {
color=blue
118 [label="Function call arguments enter"];
119 [label="Function call arguments exit"];
}
120 [label="Function call: R|/n|<R|kotlin/Int?|>()" style="filled" fillcolor=yellow];
121 [label="Exit block"];
}
122 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
123 [label="Function call arguments exit"];
}
124 [label="Postponed exit from lambda"];
125 [label="Function call: R|kotlin/run|<R|kotlin/Int?|>(...)" style="filled" fillcolor=yellow];
126 [label="Function call arguments exit"];
}
127 [label="Function call: R|/id|<R|kotlin/Int?|>(...)" style="filled" fillcolor=yellow];
subgraph cluster_40 {
color=blue
128 [label="Enter when"];
subgraph cluster_41 {
color=blue
129 [label="Enter when branch condition "];
130 [label="Const: Boolean(true)"];
131 [label="Exit when branch condition"];
}
subgraph cluster_42 {
color=blue
132 [label="Enter when branch condition else"];
133 [label="Exit when branch condition"];
}
134 [label="Enter when branch result"];
subgraph cluster_43 {
color=blue
135 [label="Enter block"];
136 [label="Const: Int(2)"];
137 [label="Exit block"];
}
138 [label="Exit when branch result"];
139 [label="Enter when branch result"];
subgraph cluster_44 {
color=blue
140 [label="Enter block"];
141 [label="Const: Int(1)"];
142 [label="Exit block"];
}
143 [label="Exit when branch result"];
144 [label="Exit when"];
}
subgraph cluster_45 {
color=blue
145 [label="Function call arguments enter"];
146 [label="Postponed enter to lambda"];
subgraph cluster_46 {
color=blue
147 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_47 {
color=blue
148 [label="Enter block"];
149 [label="Access variable R|<local>/x|"];
150 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
151 [label="Const: Int(123)"];
152 [label="Exit block"];
}
153 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
154 [label="Function call arguments exit"];
}
155 [label="Postponed exit from lambda"];
156 [label="Function call: R|kotlin/run|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
157 [label="Function call arguments exit"];
}
158 [label="Function call: R|/foo|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
159 [label="Access variable R|<local>/x|"];
160 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
161 [label="Exit block"];
}
162 [label="Exit function test3" style="filled" fillcolor=red];
}
108 -> {109};
109 -> {110};
110 -> {111};
111 -> {112};
112 -> {113};
113 -> {114 123};
113 -> {124} [style=dotted];
113 -> {114} [style=dashed];
114 -> {115};
115 -> {116};
116 -> {117};
117 -> {118};
118 -> {119};
119 -> {120};
120 -> {121};
121 -> {122};
122 -> {124};
123 -> {125};
124 -> {125} [color=green];
124 -> {158} [color=red label="Postponed"];
125 -> {126};
126 -> {127};
127 -> {128};
128 -> {129};
129 -> {130};
130 -> {131};
131 -> {132 139};
132 -> {133};
133 -> {134};
134 -> {135};
135 -> {136};
136 -> {137};
137 -> {138};
138 -> {144};
139 -> {140};
140 -> {141};
141 -> {142};
142 -> {143};
143 -> {144};
144 -> {145};
145 -> {146};
146 -> {147 154};
146 -> {155} [style=dotted];
146 -> {147} [style=dashed];
147 -> {148};
148 -> {149};
149 -> {150};
150 -> {151};
151 -> {152};
152 -> {153};
153 -> {155};
154 -> {156};
155 -> {156} [color=green];
155 -> {158} [color=red label="Postponed"];
156 -> {157};
157 -> {158};
158 -> {159};
159 -> {160};
160 -> {161};
161 -> {162};
subgraph cluster_48 {
color=red
163 [label="Enter function test4" style="filled" fillcolor=red];
subgraph cluster_49 {
color=blue
164 [label="Enter block"];
165 [label="Access variable R|<local>/x|"];
166 [label="Variable declaration: lvar p: R|kotlin/String?|"];
subgraph cluster_50 {
color=blue
167 [label="Enter when"];
subgraph cluster_51 {
color=blue
168 [label="Enter when branch condition "];
169 [label="Access variable R|<local>/p|"];
170 [label="Const: Null(null)"];
171 [label="Equality operator !="];
172 [label="Exit when branch condition"];
}
173 [label="Synthetic else branch"];
174 [label="Enter when branch result"];
subgraph cluster_52 {
color=blue
175 [label="Enter block"];
subgraph cluster_53 {
color=blue
176 [label="Function call arguments enter"];
subgraph cluster_54 {
color=blue
177 [label="Function call arguments enter"];
subgraph cluster_55 {
color=blue
178 [label="Enter when"];
subgraph cluster_56 {
color=blue
179 [label="Enter when branch condition "];
180 [label="Const: Boolean(true)"];
181 [label="Exit when branch condition"];
}
subgraph cluster_57 {
color=blue
182 [label="Enter when branch condition else"];
183 [label="Exit when branch condition"];
}
184 [label="Enter when branch result"];
subgraph cluster_58 {
color=blue
185 [label="Enter block"];
subgraph cluster_59 {
color=blue
186 [label="Function call arguments enter"];
187 [label="Postponed enter to lambda"];
subgraph cluster_60 {
color=blue
188 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_61 {
color=blue
189 [label="Enter block"];
subgraph cluster_62 {
color=blue
190 [label="Function call arguments enter"];
191 [label="Function call arguments exit"];
}
192 [label="Function call: R|/n|<R|kotlin/Int?|>()" style="filled" fillcolor=yellow];
193 [label="Exit block"];
}
194 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
195 [label="Function call arguments exit"];
}
196 [label="Postponed exit from lambda"];
197 [label="Function call: R|kotlin/run|<R|kotlin/Int?|>(...)" style="filled" fillcolor=yellow];
198 [label="Exit block"];
}
199 [label="Exit when branch result"];
200 [label="Enter when branch result"];
subgraph cluster_63 {
color=blue
201 [label="Enter block"];
subgraph cluster_64 {
color=blue
202 [label="Function call arguments enter"];
203 [label="Postponed enter to lambda"];
subgraph cluster_65 {
color=blue
204 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_66 {
color=blue
205 [label="Enter block"];
206 [label="Const: Null(null)"];
207 [label="Assignment: R|<local>/p|"];
subgraph cluster_67 {
color=blue
208 [label="Function call arguments enter"];
209 [label="Function call arguments exit"];
}
210 [label="Function call: R|/n|<R|kotlin/Int?|>()" style="filled" fillcolor=yellow];
211 [label="Exit block"];
}
212 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
213 [label="Function call arguments exit"];
}
214 [label="Postponed exit from lambda"];
215 [label="Function call: R|kotlin/run|<R|kotlin/Int?|>(...)" style="filled" fillcolor=yellow];
216 [label="Exit block"];
}
217 [label="Exit when branch result"];
218 [label="Exit when"];
}
219 [label="Function call arguments exit"];
}
220 [label="Function call: R|/id|<R|kotlin/Int?|>(...)" style="filled" fillcolor=yellow];
221 [label="Const: Int(1)"];
subgraph cluster_68 {
color=blue
222 [label="Function call arguments enter"];
223 [label="Postponed enter to lambda"];
subgraph cluster_69 {
color=blue
224 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_70 {
color=blue
225 [label="Enter block"];
226 [label="Access variable R|<local>/p|"];
227 [label="Smart cast: R|<local>/p|"];
228 [label="Access variable R|kotlin/String.length<Inapplicable(UNSTABLE_SMARTCAST): kotlin/String.length>#|"];
229 [label="Const: Int(123)"];
230 [label="Exit block"];
}
231 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
232 [label="Function call arguments exit"];
}
233 [label="Postponed exit from lambda"];
234 [label="Function call: R|kotlin/run|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
235 [label="Function call arguments exit"];
}
236 [label="Merge postponed lambda exits"];
237 [label="Function call: R|/foo|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
238 [label="Access variable R|<local>/p|"];
239 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
240 [label="Exit block"];
}
241 [label="Exit when branch result"];
242 [label="Exit when"];
}
243 [label="Exit block"];
}
244 [label="Exit function test4" style="filled" fillcolor=red];
}
163 -> {164};
164 -> {165};
165 -> {166};
166 -> {167};
167 -> {168};
168 -> {169};
169 -> {170};
170 -> {171};
171 -> {172};
172 -> {173 174};
173 -> {242};
174 -> {175};
175 -> {176};
176 -> {177};
177 -> {178};
178 -> {179};
179 -> {180};
180 -> {181};
181 -> {182 200};
182 -> {183};
183 -> {184};
184 -> {185};
185 -> {186};
186 -> {187};
187 -> {188 195};
187 -> {196} [style=dotted];
187 -> {188} [style=dashed];
188 -> {189};
189 -> {190};
190 -> {191};
191 -> {192};
192 -> {193};
193 -> {194};
194 -> {196};
195 -> {197};
196 -> {197} [color=green];
196 -> {236} [color=red];
197 -> {198};
198 -> {199};
199 -> {218};
200 -> {201};
201 -> {202};
202 -> {203};
203 -> {204 213};
203 -> {214} [style=dotted];
203 -> {204} [style=dashed];
204 -> {205};
205 -> {206};
206 -> {207};
207 -> {208};
208 -> {209};
209 -> {210};
210 -> {211};
211 -> {212};
212 -> {214};
213 -> {215};
214 -> {215} [color=green];
214 -> {236} [color=red];
215 -> {216};
216 -> {217};
217 -> {218};
218 -> {219 236};
219 -> {220};
220 -> {221};
221 -> {222};
222 -> {223};
223 -> {224 232};
223 -> {233} [style=dotted];
223 -> {224} [style=dashed];
224 -> {225};
225 -> {226};
226 -> {227};
227 -> {228};
228 -> {229};
229 -> {230};
230 -> {231};
231 -> {233};
232 -> {234};
233 -> {234} [color=green];
233 -> {237} [color=red label="Postponed"];
234 -> {235};
235 -> {237};
236 -> {237} [color=red label="Postponed"];
237 -> {238};
238 -> {239};
239 -> {240};
240 -> {241};
241 -> {242};
242 -> {243};
243 -> {244};
subgraph cluster_71 {
color=red
245 [label="Enter function test5" style="filled" fillcolor=red];
subgraph cluster_72 {
color=blue
246 [label="Enter block"];
subgraph cluster_73 {
color=blue
247 [label="Function call arguments enter"];
248 [label="Access variable R|<local>/y|"];
249 [label="Enter safe call"];
subgraph cluster_74 {
color=blue
250 [label="Function call arguments enter"];
251 [label="Postponed enter to lambda"];
subgraph cluster_75 {
color=blue
252 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_76 {
color=blue
253 [label="Enter block"];
254 [label="Access variable R|<local>/x|"];
255 [label="Type operator: (R|<local>/x| as R|kotlin/String|)"];
subgraph cluster_77 {
color=blue
256 [label="Function call arguments enter"];
257 [label="Function call arguments exit"];
}
258 [label="Function call: R|/n|<R|kotlin/String?|>()" style="filled" fillcolor=yellow];
259 [label="Exit block"];
}
260 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
261 [label="Function call arguments exit"];
}
262 [label="Postponed exit from lambda"];
263 [label="Function call: $subj$.R|kotlin/let|<R|kotlin/String|, R|kotlin/String?|>(...)" style="filled" fillcolor=yellow];
264 [label="Exit safe call"];
265 [label="Const: Int(1)"];
subgraph cluster_78 {
color=blue
266 [label="Function call arguments enter"];
267 [label="Postponed enter to lambda"];
subgraph cluster_79 {
color=blue
268 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_80 {
color=blue
269 [label="Enter block"];
270 [label="Const: String()"];
271 [label="Exit block"];
}
272 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
273 [label="Function call arguments exit"];
}
274 [label="Postponed exit from lambda"];
275 [label="Function call: R|kotlin/run|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
276 [label="Function call arguments exit"];
}
277 [label="Merge postponed lambda exits"];
278 [label="Function call: R|/foo|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
279 [label="Access variable R|<local>/x|"];
280 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
281 [label="Exit block"];
}
282 [label="Exit function test5" style="filled" fillcolor=red];
}
245 -> {246};
246 -> {247};
247 -> {248};
248 -> {249 264};
249 -> {250};
250 -> {251};
251 -> {252 261};
251 -> {262} [style=dotted];
251 -> {252} [style=dashed];
252 -> {253};
253 -> {254};
254 -> {255};
255 -> {256};
256 -> {257};
257 -> {258};
258 -> {259};
259 -> {260};
260 -> {262};
261 -> {263};
262 -> {263} [color=green];
262 -> {277} [color=red];
263 -> {264};
264 -> {265 277};
265 -> {266};
266 -> {267};
267 -> {268 273};
267 -> {274} [style=dotted];
267 -> {268} [style=dashed];
268 -> {269};
269 -> {270};
270 -> {271};
271 -> {272};
272 -> {274};
273 -> {275};
274 -> {275} [color=green];
274 -> {278} [color=red label="Postponed"];
275 -> {276};
276 -> {278};
277 -> {278} [color=red label="Postponed"];
278 -> {279};
279 -> {280};
280 -> {281};
281 -> {282};
subgraph cluster_81 {
color=red
283 [label="Enter function test6" style="filled" fillcolor=red];
subgraph cluster_82 {
color=blue
284 [label="Enter block"];
subgraph cluster_83 {
color=blue
285 [label="Function call arguments enter"];
subgraph cluster_84 {
color=blue
286 [label="Function call arguments enter"];
subgraph cluster_85 {
color=blue
287 [label="Enter when"];
subgraph cluster_86 {
color=blue
288 [label="Enter when branch condition "];
289 [label="Const: Boolean(true)"];
290 [label="Exit when branch condition"];
}
subgraph cluster_87 {
color=blue
291 [label="Enter when branch condition else"];
292 [label="Exit when branch condition"];
}
293 [label="Enter when branch result"];
subgraph cluster_88 {
color=blue
294 [label="Enter block"];
subgraph cluster_89 {
color=blue
295 [label="Function call arguments enter"];
296 [label="Postponed enter to lambda"];
subgraph cluster_90 {
color=blue
297 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_91 {
color=blue
298 [label="Enter block"];
299 [label="Access variable R|<local>/x|"];
300 [label="Type operator: (R|<local>/x| as R|kotlin/String|)"];
subgraph cluster_92 {
color=blue
301 [label="Function call arguments enter"];
302 [label="Function call arguments exit"];
}
303 [label="Function call: R|/n|<R|kotlin/Int?|>()" style="filled" fillcolor=yellow];
304 [label="Exit block"];
}
305 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
306 [label="Function call arguments exit"];
}
307 [label="Postponed exit from lambda"];
308 [label="Function call: R|kotlin/run|<R|kotlin/Int?|>(...)" style="filled" fillcolor=yellow];
309 [label="Exit block"];
}
310 [label="Exit when branch result"];
311 [label="Enter when branch result"];
subgraph cluster_93 {
color=blue
312 [label="Enter block"];
subgraph cluster_94 {
color=blue
313 [label="Function call arguments enter"];
314 [label="Postponed enter to lambda"];
subgraph cluster_95 {
color=blue
315 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_96 {
color=blue
316 [label="Enter block"];
317 [label="Access variable R|<local>/x|"];
318 [label="Type operator: (R|<local>/x| as R|kotlin/String|)"];
subgraph cluster_97 {
color=blue
319 [label="Function call arguments enter"];
320 [label="Function call arguments exit"];
}
321 [label="Function call: R|/n|<R|kotlin/Int?|>()" style="filled" fillcolor=yellow];
322 [label="Exit block"];
}
323 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
324 [label="Function call arguments exit"];
}
325 [label="Postponed exit from lambda"];
326 [label="Function call: R|kotlin/run|<R|kotlin/Int?|>(...)" style="filled" fillcolor=yellow];
327 [label="Exit block"];
}
328 [label="Exit when branch result"];
329 [label="Exit when"];
}
330 [label="Function call arguments exit"];
}
331 [label="Function call: R|/id|<R|kotlin/Int?|>(...)" style="filled" fillcolor=yellow];
332 [label="Const: Int(1)"];
subgraph cluster_98 {
color=blue
333 [label="Function call arguments enter"];
334 [label="Postponed enter to lambda"];
subgraph cluster_99 {
color=blue
335 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_100 {
color=blue
336 [label="Enter block"];
337 [label="Access variable R|<local>/x|"];
338 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
339 [label="Const: Int(123)"];
340 [label="Exit block"];
}
341 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
342 [label="Function call arguments exit"];
}
343 [label="Postponed exit from lambda"];
344 [label="Function call: R|kotlin/run|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
345 [label="Function call arguments exit"];
}
346 [label="Merge postponed lambda exits"];
347 [label="Function call: R|/foo|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
348 [label="Access variable R|<local>/x|"];
349 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
350 [label="Exit block"];
}
351 [label="Exit function test6" style="filled" fillcolor=red];
}
283 -> {284};
284 -> {285};
285 -> {286};
286 -> {287};
287 -> {288};
288 -> {289};
289 -> {290};
290 -> {291 311};
291 -> {292};
292 -> {293};
293 -> {294};
294 -> {295};
295 -> {296};
296 -> {297 306};
296 -> {307} [style=dotted];
296 -> {297} [style=dashed];
297 -> {298};
298 -> {299};
299 -> {300};
300 -> {301};
301 -> {302};
302 -> {303};
303 -> {304};
304 -> {305};
305 -> {307};
306 -> {308};
307 -> {308} [color=green];
307 -> {346} [color=red];
308 -> {309};
309 -> {310};
310 -> {329};
311 -> {312};
312 -> {313};
313 -> {314};
314 -> {315 324};
314 -> {325} [style=dotted];
314 -> {315} [style=dashed];
315 -> {316};
316 -> {317};
317 -> {318};
318 -> {319};
319 -> {320};
320 -> {321};
321 -> {322};
322 -> {323};
323 -> {325};
324 -> {326};
325 -> {326} [color=green];
325 -> {346} [color=red];
326 -> {327};
327 -> {328};
328 -> {329};
329 -> {330 346};
330 -> {331};
331 -> {332};
332 -> {333};
333 -> {334};
334 -> {335 342};
334 -> {343} [style=dotted];
334 -> {335} [style=dashed];
335 -> {336};
336 -> {337};
337 -> {338};
338 -> {339};
339 -> {340};
340 -> {341};
341 -> {343};
342 -> {344};
343 -> {344} [color=green];
343 -> {347} [color=red label="Postponed"];
344 -> {345};
345 -> {347};
346 -> {347} [color=red label="Postponed"];
347 -> {348};
348 -> {349};
349 -> {350};
350 -> {351};
subgraph cluster_101 {
color=red
352 [label="Enter function test7" style="filled" fillcolor=red];
subgraph cluster_102 {
color=blue
353 [label="Enter block"];
354 [label="Access variable R|<local>/x|"];
355 [label="Variable declaration: lvar p: R|kotlin/String?|"];
subgraph cluster_103 {
color=blue
356 [label="Enter when"];
subgraph cluster_104 {
color=blue
357 [label="Enter when branch condition "];
358 [label="Access variable R|<local>/p|"];
359 [label="Const: Null(null)"];
360 [label="Equality operator !="];
361 [label="Exit when branch condition"];
}
362 [label="Synthetic else branch"];
363 [label="Enter when branch result"];
subgraph cluster_105 {
color=blue
364 [label="Enter block"];
subgraph cluster_106 {
color=blue
365 [label="Function call arguments enter"];
subgraph cluster_107 {
color=blue
366 [label="Function call arguments enter"];
subgraph cluster_108 {
color=blue
367 [label="Function call arguments enter"];
368 [label="Postponed enter to lambda"];
subgraph cluster_109 {
color=blue
369 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_110 {
color=blue
370 [label="Enter block"];
371 [label="Const: Null(null)"];
372 [label="Assignment: R|<local>/p|"];
subgraph cluster_111 {
color=blue
373 [label="Function call arguments enter"];
374 [label="Function call arguments exit"];
}
375 [label="Function call: R|/n|<R|kotlin/Int?|>()" style="filled" fillcolor=yellow];
376 [label="Exit block"];
}
377 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
378 [label="Function call arguments exit"];
}
379 [label="Postponed exit from lambda"];
380 [label="Function call: R|kotlin/run|<R|kotlin/Int?|>(...)" style="filled" fillcolor=yellow];
381 [label="Function call arguments exit"];
}
382 [label="Function call: R|/id|<R|kotlin/Int?|>(...)" style="filled" fillcolor=yellow];
383 [label="Const: Int(1)"];
subgraph cluster_112 {
color=blue
384 [label="Function call arguments enter"];
385 [label="Postponed enter to lambda"];
subgraph cluster_113 {
color=blue
386 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_114 {
color=blue
387 [label="Enter block"];
388 [label="Access variable R|<local>/p|"];
389 [label="Smart cast: R|<local>/p|"];
390 [label="Access variable R|kotlin/String.length<Inapplicable(UNSTABLE_SMARTCAST): kotlin/String.length>#|"];
391 [label="Const: Int(123)"];
392 [label="Exit block"];
}
393 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
394 [label="Function call arguments exit"];
}
395 [label="Postponed exit from lambda"];
396 [label="Function call: R|kotlin/run|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
397 [label="Function call arguments exit"];
}
398 [label="Function call: R|/foo|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
399 [label="Access variable R|<local>/p|"];
400 [label="Access variable R|kotlin/String.length<Inapplicable(UNSAFE_CALL): kotlin/String.length>#|"];
401 [label="Exit block"];
}
402 [label="Exit when branch result"];
403 [label="Exit when"];
}
404 [label="Exit block"];
}
405 [label="Exit function test7" style="filled" fillcolor=red];
}
352 -> {353};
353 -> {354};
354 -> {355};
355 -> {356};
356 -> {357};
357 -> {358};
358 -> {359};
359 -> {360};
360 -> {361};
361 -> {362 363};
362 -> {403};
363 -> {364};
364 -> {365};
365 -> {366};
366 -> {367};
367 -> {368};
368 -> {369 378};
368 -> {379} [style=dotted];
368 -> {369} [style=dashed];
369 -> {370};
370 -> {371};
371 -> {372};
372 -> {373};
373 -> {374};
374 -> {375};
375 -> {376};
376 -> {377};
377 -> {379};
378 -> {380};
379 -> {380} [color=green];
379 -> {398} [color=red label="Postponed"];
380 -> {381};
381 -> {382};
382 -> {383};
383 -> {384};
384 -> {385};
385 -> {386 394};
385 -> {395} [style=dotted];
385 -> {386} [style=dashed];
386 -> {387};
387 -> {388};
388 -> {389};
389 -> {390};
390 -> {391};
391 -> {392};
392 -> {393};
393 -> {395};
394 -> {396};
395 -> {396} [color=green];
395 -> {398} [color=red label="Postponed"];
396 -> {397};
397 -> {398};
398 -> {399};
399 -> {400};
400 -> {401};
401 -> {402};
402 -> {403};
403 -> {404};
404 -> {405};
}