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

518 lines
18 KiB
Plaintext
Vendored

digraph callsInPlace_kt {
graph [nodesep=3]
node [shape=box penwidth=2]
edge [penwidth=2]
subgraph cluster_0 {
color=red
0 [label="Enter file callsInPlace.kt" style="filled" fillcolor=red];
1 [label="Exit file callsInPlace.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 x: R|kotlin/Int|"];
subgraph cluster_3 {
color=blue
5 [label="Function call arguments enter"];
6 [label="Postponed enter to lambda"];
subgraph cluster_4 {
color=blue
7 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_5 {
color=blue
8 [label="Enter block"];
9 [label="Const: Int(1)"];
10 [label="Assignment: R|<local>/x|"];
11 [label="Exit block"];
}
12 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
13 [label="Function call arguments exit"];
}
14 [label="Postponed exit from lambda"];
15 [label="Function call: R|kotlin/run|<R|kotlin/Unit|>(...)" style="filled" fillcolor=yellow];
subgraph cluster_6 {
color=blue
16 [label="Function call arguments enter"];
17 [label="Access variable R|<local>/x|"];
18 [label="Function call arguments exit"];
}
19 [label="Function call: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
20 [label="Exit block"];
}
21 [label="Exit function test" style="filled" fillcolor=red];
}
2 -> {3};
3 -> {4};
4 -> {5};
5 -> {6};
6 -> {7 13};
6 -> {14} [style=dotted];
6 -> {7} [style=dashed];
7 -> {8};
8 -> {9};
9 -> {10};
10 -> {11};
11 -> {12};
12 -> {14};
13 -> {15};
14 -> {15} [label="Postponed"];
15 -> {16};
16 -> {17};
17 -> {18};
18 -> {19};
19 -> {20};
20 -> {21};
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="Function call arguments enter"];
25 [label="Const: Int(10)"];
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="Const: String(test_2)"];
30 [label="Exit block"];
}
31 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
32 [label="Function call arguments exit"];
}
33 [label="Postponed exit from lambda"];
34 [label="Function call: R|kotlin/repeat|(...)" style="filled" fillcolor=yellow];
35 [label="Exit block"];
}
36 [label="Exit function test_2" style="filled" fillcolor=red];
}
22 -> {23};
23 -> {24};
24 -> {25};
25 -> {26};
26 -> {27 32 33};
26 -> {27} [style=dashed];
27 -> {28};
28 -> {29};
29 -> {30};
30 -> {31};
31 -> {33};
32 -> {34};
33 -> {26} [color=green style=dashed];
33 -> {34} [label="Postponed"];
34 -> {35};
35 -> {36};
subgraph cluster_12 {
color=red
37 [label="Enter function test_3" style="filled" fillcolor=red];
subgraph cluster_13 {
color=blue
38 [label="Enter block"];
subgraph cluster_14 {
color=blue
39 [label="Function call arguments enter"];
40 [label="Const: Int(10)"];
41 [label="Postponed enter to lambda"];
subgraph cluster_15 {
color=blue
42 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_16 {
color=blue
43 [label="Enter block"];
44 [label="Const: String(test_3)"];
45 [label="Exit block"];
}
46 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
47 [label="Function call arguments exit"];
}
48 [label="Postponed exit from lambda"];
49 [label="Function call: R|kotlin/repeat|(...)" style="filled" fillcolor=yellow];
50 [label="Exit block"];
}
51 [label="Exit function test_3" style="filled" fillcolor=red];
}
37 -> {38};
38 -> {39};
39 -> {40};
40 -> {41};
41 -> {42 47 48};
41 -> {42} [style=dashed];
42 -> {43};
43 -> {44};
44 -> {45};
45 -> {46};
46 -> {48};
47 -> {49};
48 -> {41} [color=green style=dashed];
48 -> {49} [label="Postponed"];
49 -> {50};
50 -> {51};
subgraph cluster_17 {
color=red
52 [label="Enter function test_4" style="filled" fillcolor=red];
subgraph cluster_18 {
color=blue
53 [label="Enter block"];
subgraph cluster_19 {
color=blue
54 [label="Function call arguments enter"];
55 [label="Const: Int(1)"];
56 [label="Postponed enter to lambda"];
subgraph cluster_20 {
color=blue
57 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_21 {
color=blue
58 [label="Enter block"];
59 [label="Const: String(test_4)"];
subgraph cluster_22 {
color=blue
60 [label="Function call arguments enter"];
61 [label="Access variable R|<local>/it|"];
62 [label="Const: Int(0)"];
63 [label="Function call arguments exit"];
}
64 [label="Function call: R|<local>/it|.R|kotlin/Int.compareTo|(...)" style="filled" fillcolor=yellow];
65 [label="Comparison >"];
66 [label="Exit block"];
}
67 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
68 [label="Function call arguments exit"];
}
69 [label="Postponed exit from lambda"];
70 [label="Function call: Int(1).R|kotlin/takeUnless|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
71 [label="Exit block"];
}
72 [label="Exit function test_4" style="filled" fillcolor=red];
}
52 -> {53};
53 -> {54};
54 -> {55};
55 -> {56};
56 -> {57 68};
56 -> {69} [style=dotted];
56 -> {57} [style=dashed];
57 -> {58};
58 -> {59};
59 -> {60};
60 -> {61};
61 -> {62};
62 -> {63};
63 -> {64};
64 -> {65};
65 -> {66};
66 -> {67};
67 -> {69};
68 -> {70};
69 -> {70} [label="Postponed"];
70 -> {71};
71 -> {72};
subgraph cluster_23 {
color=red
73 [label="Enter function test_5" style="filled" fillcolor=red];
subgraph cluster_24 {
color=blue
74 [label="Enter block"];
subgraph cluster_25 {
color=blue
75 [label="Function call arguments enter"];
76 [label="Const: Int(1)"];
77 [label="Postponed enter to lambda"];
subgraph cluster_26 {
color=blue
78 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_27 {
color=blue
79 [label="Enter block"];
80 [label="Const: String(test_5)"];
subgraph cluster_28 {
color=blue
81 [label="Function call arguments enter"];
82 [label="Access variable R|<local>/it|"];
83 [label="Const: Int(0)"];
84 [label="Function call arguments exit"];
}
85 [label="Function call: R|<local>/it|.R|kotlin/Int.compareTo|(...)" style="filled" fillcolor=yellow];
86 [label="Comparison >"];
87 [label="Exit block"];
}
88 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
89 [label="Function call arguments exit"];
}
90 [label="Postponed exit from lambda"];
91 [label="Function call: Int(1).R|kotlin/takeUnless|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
92 [label="Exit block"];
}
93 [label="Exit function test_5" style="filled" fillcolor=red];
}
73 -> {74};
74 -> {75};
75 -> {76};
76 -> {77};
77 -> {78 89};
77 -> {90} [style=dotted];
77 -> {78} [style=dashed];
78 -> {79};
79 -> {80};
80 -> {81};
81 -> {82};
82 -> {83};
83 -> {84};
84 -> {85};
85 -> {86};
86 -> {87};
87 -> {88};
88 -> {90};
89 -> {91};
90 -> {91} [label="Postponed"];
91 -> {92};
92 -> {93};
subgraph cluster_29 {
color=red
94 [label="Enter function myRun" style="filled" fillcolor=red];
subgraph cluster_30 {
color=blue
95 [label="Enter block"];
subgraph cluster_31 {
color=blue
96 [label="Function call arguments enter"];
97 [label="Function call arguments exit"];
}
98 [label="Function call: R|<local>/block1|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
subgraph cluster_32 {
color=blue
99 [label="Function call arguments enter"];
100 [label="Function call arguments exit"];
}
101 [label="Function call: R|<local>/block2|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
102 [label="Exit block"];
}
103 [label="Exit function myRun" style="filled" fillcolor=red];
}
94 -> {95};
95 -> {96};
96 -> {97};
97 -> {98};
98 -> {99};
99 -> {100};
100 -> {101};
101 -> {102};
102 -> {103};
subgraph cluster_33 {
color=red
104 [label="Enter function test_6" style="filled" fillcolor=red];
subgraph cluster_34 {
color=blue
105 [label="Enter block"];
subgraph cluster_35 {
color=blue
106 [label="Function call arguments enter"];
107 [label="Postponed enter to lambda"];
subgraph cluster_36 {
color=blue
108 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_37 {
color=blue
109 [label="Enter block"];
110 [label="Const: String(test_6_2)"];
111 [label="Exit block"];
}
112 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
subgraph cluster_38 {
color=blue
113 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_39 {
color=blue
114 [label="Enter block"];
115 [label="Const: String(test_6_1)"];
116 [label="Exit block"];
}
117 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
118 [label="Function call arguments exit"];
}
119 [label="Postponed exit from lambda"];
120 [label="Postponed exit from lambda"];
121 [label="Function call: R|/myRun|(...)" style="filled" fillcolor=yellow];
122 [label="Exit block"];
}
123 [label="Exit function test_6" style="filled" fillcolor=red];
}
104 -> {105};
105 -> {106};
106 -> {107};
107 -> {108 113 118 119 120};
107 -> {108 113} [style=dashed];
108 -> {109};
109 -> {110};
110 -> {111};
111 -> {112};
112 -> {119};
113 -> {114};
114 -> {115};
115 -> {116};
116 -> {117};
117 -> {120};
118 -> {121};
119 -> {107} [color=green style=dashed];
119 -> {121} [label="Postponed"];
120 -> {107} [color=green style=dashed];
120 -> {121} [label="Postponed"];
121 -> {122};
122 -> {123};
subgraph cluster_40 {
color=red
124 [label="Enter function test_7" style="filled" fillcolor=red];
subgraph cluster_41 {
color=blue
125 [label="Enter block"];
subgraph cluster_42 {
color=blue
126 [label="Function call arguments enter"];
127 [label="Postponed enter to lambda"];
subgraph cluster_43 {
color=blue
128 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_44 {
color=blue
129 [label="Enter block"];
130 [label="Const: String(test_7_1)"];
131 [label="Exit block"];
}
132 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
subgraph cluster_45 {
color=blue
133 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_46 {
color=blue
134 [label="Enter block"];
135 [label="Const: String(test_7_2)"];
136 [label="Exit block"];
}
137 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
138 [label="Function call arguments exit"];
}
139 [label="Postponed exit from lambda"];
140 [label="Postponed exit from lambda"];
141 [label="Function call: R|/myRun|(...)" style="filled" fillcolor=yellow];
142 [label="Exit block"];
}
143 [label="Exit function test_7" style="filled" fillcolor=red];
}
124 -> {125};
125 -> {126};
126 -> {127};
127 -> {128 133 138 139 140};
127 -> {128 133} [style=dashed];
128 -> {129};
129 -> {130};
130 -> {131};
131 -> {132};
132 -> {139};
133 -> {134};
134 -> {135};
135 -> {136};
136 -> {137};
137 -> {140};
138 -> {141};
139 -> {127} [color=green style=dashed];
139 -> {141} [label="Postponed"];
140 -> {127} [color=green style=dashed];
140 -> {141} [label="Postponed"];
141 -> {142};
142 -> {143};
subgraph cluster_47 {
color=red
144 [label="Enter function myDummyRun" style="filled" fillcolor=red];
subgraph cluster_48 {
color=blue
145 [label="Enter block"];
subgraph cluster_49 {
color=blue
146 [label="Function call arguments enter"];
147 [label="Function call arguments exit"];
}
148 [label="Function call: R|<local>/block|.R|SubstitutionOverride<kotlin/Function0.invoke: R|kotlin/Unit|>|()" style="filled" fillcolor=yellow];
149 [label="Exit block"];
}
150 [label="Exit function myDummyRun" style="filled" fillcolor=red];
}
144 -> {145};
145 -> {146};
146 -> {147};
147 -> {148};
148 -> {149};
149 -> {150};
subgraph cluster_50 {
color=red
151 [label="Enter function test_8" style="filled" fillcolor=red];
subgraph cluster_51 {
color=blue
152 [label="Enter block"];
subgraph cluster_52 {
color=blue
153 [label="Function call arguments enter"];
154 [label="Postponed enter to lambda"];
subgraph cluster_53 {
color=blue
155 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_54 {
color=blue
156 [label="Enter block"];
157 [label="Const: String(test_8)"];
158 [label="Exit block"];
}
159 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
160 [label="Function call arguments exit"];
}
161 [label="Postponed exit from lambda"];
162 [label="Function call: R|/myDummyRun|(...)" style="filled" fillcolor=yellow];
163 [label="Exit block"];
}
164 [label="Exit function test_8" style="filled" fillcolor=red];
}
151 -> {152};
152 -> {153};
153 -> {154};
154 -> {155 160 161};
154 -> {155} [style=dashed];
155 -> {156};
156 -> {157};
157 -> {158};
158 -> {159};
160 -> {162};
161 -> {162} [label="Postponed"];
162 -> {163};
163 -> {164};
}