[FIR] Pick the fixation direction based on the readiness and the expected type
The changes in tests seem to be acceptable: they don't seem to turn
green code into red. Note, however, that in general, we don't want to
fix the variable up just because it has the expected type: it's just
that we sometimes encounter scenarios where the readiness dictates
the upwards direction but we don't really want to follow it.
E.g., see: `compiler/testData/diagnostics/tests/smartCasts/kt32358_3.kt`.
There, fixing `R` up means `callIt { TODO() }` returns `String` rather
than `Nothing`, which breaks the smartcast.
^KT-51634
diff --git a/compiler/fir/analysis-tests/testData/resolve/cfg/flowFromInplaceLambda.dot b/compiler/fir/analysis-tests/testData/resolve/cfg/flowFromInplaceLambda.dot
index 7f8317c..891b13c 100644
--- a/compiler/fir/analysis-tests/testData/resolve/cfg/flowFromInplaceLambda.dot
+++ b/compiler/fir/analysis-tests/testData/resolve/cfg/flowFromInplaceLambda.dot
@@ -251,216 +251,216 @@
80 [label="Enter block"];
81 [label="Const: Null(null)"];
82 [label="Check not null: Null(null)!!" style="filled" fillcolor=yellow];
- 83 [label="Stub" style="filled" fillcolor=gray];
- 84 [label="Jump: ^materialize Null(null)!!" style="filled" fillcolor=gray];
- 85 [label="Stub" style="filled" fillcolor=gray];
- 86 [label="Exit block" style="filled" fillcolor=gray];
+ 83 [label="Jump: ^materialize Null(null)!!"];
+ 84 [label="Stub" style="filled" fillcolor=gray];
+ 85 [label="Exit block" style="filled" fillcolor=gray];
}
- 87 [label="Exit function materialize" style="filled" fillcolor=gray];
+ 86 [label="Exit function materialize" style="filled" fillcolor=red];
}
79 -> {80};
80 -> {81};
81 -> {82};
- 82 -> {83} [style=dotted];
+ 82 -> {83};
+ 83 -> {86};
83 -> {84} [style=dotted];
- 84 -> {85 87} [style=dotted];
+ 84 -> {85} [style=dotted];
85 -> {86} [style=dotted];
- 86 -> {87} [style=dotted];
subgraph cluster_27 {
color=red
- 88 [label="Enter function basic" style="filled" fillcolor=red];
+ 87 [label="Enter function basic" style="filled" fillcolor=red];
subgraph cluster_28 {
color=blue
- 89 [label="Enter block"];
+ 88 [label="Enter block"];
subgraph cluster_29 {
color=blue
- 90 [label="Function call arguments enter"];
- 91 [label="Anonymous function capture"];
- 92 [label="Postponed enter to lambda"];
+ 89 [label="Function call arguments enter"];
+ 90 [label="Anonymous function capture"];
+ 91 [label="Postponed enter to lambda"];
subgraph cluster_30 {
color=blue
- 93 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 92 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_31 {
color=blue
- 94 [label="Enter block"];
- 95 [label="Access variable R|<local>/x|"];
- 96 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
- 97 [label="Exit block"];
+ 93 [label="Enter block"];
+ 94 [label="Access variable R|<local>/x|"];
+ 95 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
+ 96 [label="Exit block"];
}
- 98 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 97 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 99 [label="Function call arguments exit"];
+ 98 [label="Function call arguments exit"];
}
- 100 [label="Function call enter: R|/exactlyOnce|<R|kotlin/Int|>(...)"];
- 101 [label="Postponed exit from lambda"];
- 102 [label="Function call exit: R|/exactlyOnce|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 99 [label="Function call enter: R|/exactlyOnce|<R|kotlin/Int|>(...)"];
+ 100 [label="Postponed exit from lambda"];
+ 101 [label="Function call exit: R|/exactlyOnce|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
subgraph cluster_32 {
color=blue
- 103 [label="Function call arguments enter"];
- 104 [label="Access variable R|<local>/x|"];
- 105 [label="Function call arguments exit"];
+ 102 [label="Function call arguments enter"];
+ 103 [label="Access variable R|<local>/x|"];
+ 104 [label="Function call arguments exit"];
}
- 106 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
- 107 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
- 108 [label="Exit block"];
+ 105 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
+ 106 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 107 [label="Exit block"];
}
- 109 [label="Exit function basic" style="filled" fillcolor=red];
+ 108 [label="Exit function basic" style="filled" fillcolor=red];
}
+ 87 -> {88};
88 -> {89};
89 -> {90};
90 -> {91};
- 91 -> {92};
- 91 -> {93} [color=green label="CapturedByValue"];
- 92 -> {93 99};
- 92 -> {101} [style=dotted];
- 92 -> {93} [style=dashed];
+ 90 -> {92} [color=green label="CapturedByValue"];
+ 91 -> {92 98};
+ 91 -> {100} [style=dotted];
+ 91 -> {92} [style=dashed];
+ 92 -> {93};
93 -> {94};
94 -> {95};
95 -> {96};
96 -> {97};
- 97 -> {98};
- 98 -> {101};
- 99 -> {100};
- 100 -> {102};
- 101 -> {102} [label="Postponed"];
+ 97 -> {100};
+ 98 -> {99};
+ 99 -> {101};
+ 100 -> {101} [label="Postponed"];
+ 101 -> {102};
102 -> {103};
103 -> {104};
104 -> {105};
105 -> {106};
106 -> {107};
107 -> {108};
- 108 -> {109};
subgraph cluster_33 {
color=red
- 110 [label="Enter function completedCallExactlyOnce" style="filled" fillcolor=red];
+ 109 [label="Enter function completedCallExactlyOnce" style="filled" fillcolor=red];
subgraph cluster_34 {
color=blue
- 111 [label="Enter block"];
+ 110 [label="Enter block"];
subgraph cluster_35 {
color=blue
- 112 [label="Function call arguments enter"];
+ 111 [label="Function call arguments enter"];
subgraph cluster_36 {
color=blue
- 113 [label="Function call arguments enter"];
+ 112 [label="Function call arguments enter"];
subgraph cluster_37 {
color=blue
- 114 [label="Function call arguments enter"];
+ 113 [label="Function call arguments enter"];
subgraph cluster_38 {
color=blue
- 115 [label="Function call arguments enter"];
- 116 [label="Anonymous function capture"];
- 117 [label="Postponed enter to lambda"];
+ 114 [label="Function call arguments enter"];
+ 115 [label="Anonymous function capture"];
+ 116 [label="Postponed enter to lambda"];
subgraph cluster_39 {
color=blue
- 118 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 117 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_40 {
color=blue
- 119 [label="Enter block"];
+ 118 [label="Enter block"];
subgraph cluster_41 {
color=blue
- 120 [label="Function call arguments enter"];
- 121 [label="Access variable R|<local>/y|"];
- 122 [label="Function call arguments exit"];
+ 119 [label="Function call arguments enter"];
+ 120 [label="Access variable R|<local>/y|"];
+ 121 [label="Function call arguments exit"];
}
- 123 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
- 124 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
- 125 [label="Access variable R|<local>/x|"];
- 126 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
- 127 [label="Exit block"];
+ 122 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
+ 123 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 124 [label="Access variable R|<local>/x|"];
+ 125 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
+ 126 [label="Exit block"];
}
- 128 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 127 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 129 [label="Function call arguments exit"];
+ 128 [label="Function call arguments exit"];
}
- 130 [label="Function call enter: R|/exactlyOnce|<R|kotlin/Int|>(...)"];
- 131 [label="Postponed exit from lambda"];
- 132 [label="Function call exit: R|/exactlyOnce|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 133 [label="Function call arguments exit"];
+ 129 [label="Function call enter: R|/exactlyOnce|<R|kotlin/Int|>(...)"];
+ 130 [label="Postponed exit from lambda"];
+ 131 [label="Function call exit: R|/exactlyOnce|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 132 [label="Function call arguments exit"];
}
- 134 [label="Function call enter: R|/id|<R|kotlin/Int|>(...)"];
- 135 [label="Function call exit: R|/id|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 136 [label="Access variable R|<local>/y|"];
- 137 [label="Type operator: (R|<local>/y| as R|kotlin/Int|)"];
+ 133 [label="Function call enter: R|/id|<R|kotlin/Int|>(...)"];
+ 134 [label="Function call exit: R|/id|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 135 [label="Access variable R|<local>/y|"];
+ 136 [label="Type operator: (R|<local>/y| as R|kotlin/Int|)"];
subgraph cluster_42 {
color=blue
- 138 [label="Function call arguments enter"];
- 139 [label="Anonymous function capture"];
- 140 [label="Postponed enter to lambda"];
+ 137 [label="Function call arguments enter"];
+ 138 [label="Anonymous function capture"];
+ 139 [label="Postponed enter to lambda"];
subgraph cluster_43 {
color=blue
- 141 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 140 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_44 {
color=blue
- 142 [label="Enter block"];
+ 141 [label="Enter block"];
subgraph cluster_45 {
color=blue
- 143 [label="Function call arguments enter"];
- 144 [label="Access variable R|<local>/x|"];
- 145 [label="Function call arguments exit"];
+ 142 [label="Function call arguments enter"];
+ 143 [label="Access variable R|<local>/x|"];
+ 144 [label="Function call arguments exit"];
}
- 146 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
- 147 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 145 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
+ 146 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
subgraph cluster_46 {
color=blue
- 148 [label="Function call arguments enter"];
- 149 [label="Access variable R|<local>/y|"];
- 150 [label="Smart cast: R|<local>/y|"];
- 151 [label="Function call arguments exit"];
+ 147 [label="Function call arguments enter"];
+ 148 [label="Access variable R|<local>/y|"];
+ 149 [label="Smart cast: R|<local>/y|"];
+ 150 [label="Function call arguments exit"];
}
- 152 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
- 153 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
- 154 [label="Const: Int(1)"];
- 155 [label="Exit block"];
+ 151 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
+ 152 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 153 [label="Const: Int(1)"];
+ 154 [label="Exit block"];
}
- 156 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 155 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 157 [label="Function call arguments exit"];
+ 156 [label="Function call arguments exit"];
}
- 158 [label="Function call enter: R|/exactlyOnce|<R|kotlin/Int|>(...)"];
- 159 [label="Postponed exit from lambda"];
- 160 [label="Function call exit: R|/exactlyOnce|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 161 [label="Function call arguments exit"];
+ 157 [label="Function call enter: R|/exactlyOnce|<R|kotlin/Int|>(...)"];
+ 158 [label="Postponed exit from lambda"];
+ 159 [label="Function call exit: R|/exactlyOnce|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 160 [label="Function call arguments exit"];
}
- 162 [label="Function call enter: R|/select|<R|kotlin/Int|>(...)"];
- 163 [label="Function call exit: R|/select|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 164 [label="Function call arguments exit"];
+ 161 [label="Function call enter: R|/select|<R|kotlin/Int|>(...)"];
+ 162 [label="Function call exit: R|/select|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 163 [label="Function call arguments exit"];
}
- 165 [label="Function call enter: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()"];
- 166 [label="Function call exit: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 164 [label="Function call enter: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()"];
+ 165 [label="Function call exit: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
subgraph cluster_47 {
color=blue
- 167 [label="Function call arguments enter"];
- 168 [label="Access variable R|<local>/x|"];
- 169 [label="Function call arguments exit"];
+ 166 [label="Function call arguments enter"];
+ 167 [label="Access variable R|<local>/x|"];
+ 168 [label="Function call arguments exit"];
}
- 170 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
- 171 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 169 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
+ 170 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
subgraph cluster_48 {
color=blue
- 172 [label="Function call arguments enter"];
- 173 [label="Access variable R|<local>/y|"];
- 174 [label="Smart cast: R|<local>/y|"];
- 175 [label="Function call arguments exit"];
+ 171 [label="Function call arguments enter"];
+ 172 [label="Access variable R|<local>/y|"];
+ 173 [label="Smart cast: R|<local>/y|"];
+ 174 [label="Function call arguments exit"];
}
- 176 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
- 177 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
- 178 [label="Exit block"];
+ 175 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
+ 176 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 177 [label="Exit block"];
}
- 179 [label="Exit function completedCallExactlyOnce" style="filled" fillcolor=red];
+ 178 [label="Exit function completedCallExactlyOnce" style="filled" fillcolor=red];
}
+ 109 -> {110};
110 -> {111};
111 -> {112};
112 -> {113};
113 -> {114};
114 -> {115};
115 -> {116};
- 116 -> {117};
- 116 -> {118} [color=green label="CapturedByValue"];
- 117 -> {118 129};
- 117 -> {131} [style=dotted];
- 117 -> {118} [style=dashed];
+ 115 -> {117} [color=green label="CapturedByValue"];
+ 116 -> {117 128};
+ 116 -> {130} [style=dotted];
+ 116 -> {117} [style=dashed];
+ 117 -> {118};
118 -> {119};
119 -> {120};
120 -> {121};
@@ -470,12 +470,12 @@
124 -> {125};
125 -> {126};
126 -> {127};
- 127 -> {128};
- 128 -> {131};
- 129 -> {130};
- 130 -> {132};
- 131 -> {132} [color=green];
- 131 -> {163} [color=red label="Postponed"];
+ 127 -> {130};
+ 128 -> {129};
+ 129 -> {131};
+ 130 -> {131} [color=green];
+ 130 -> {162} [color=red label="Postponed"];
+ 131 -> {132};
132 -> {133};
133 -> {134};
134 -> {135};
@@ -483,11 +483,11 @@
136 -> {137};
137 -> {138};
138 -> {139};
- 139 -> {140};
- 139 -> {141} [color=green label="CapturedByValue"];
- 140 -> {141 157};
- 140 -> {159} [style=dotted];
- 140 -> {141} [style=dashed];
+ 138 -> {140} [color=green label="CapturedByValue"];
+ 139 -> {140 156};
+ 139 -> {158} [style=dotted];
+ 139 -> {140} [style=dashed];
+ 140 -> {141};
141 -> {142};
142 -> {143};
143 -> {144};
@@ -502,12 +502,12 @@
152 -> {153};
153 -> {154};
154 -> {155};
- 155 -> {156};
- 156 -> {159};
- 157 -> {158};
- 158 -> {160};
- 159 -> {160} [color=green];
- 159 -> {163} [color=red label="Postponed"];
+ 155 -> {158};
+ 156 -> {157};
+ 157 -> {159};
+ 158 -> {159} [color=green];
+ 158 -> {162} [color=red label="Postponed"];
+ 159 -> {160};
160 -> {161};
161 -> {162};
162 -> {163};
@@ -526,137 +526,137 @@
175 -> {176};
176 -> {177};
177 -> {178};
- 178 -> {179};
subgraph cluster_49 {
color=red
- 180 [label="Enter function completedCallAtLeastOnce" style="filled" fillcolor=red];
+ 179 [label="Enter function completedCallAtLeastOnce" style="filled" fillcolor=red];
subgraph cluster_50 {
color=blue
- 181 [label="Enter block"];
+ 180 [label="Enter block"];
subgraph cluster_51 {
color=blue
- 182 [label="Function call arguments enter"];
+ 181 [label="Function call arguments enter"];
subgraph cluster_52 {
color=blue
- 183 [label="Function call arguments enter"];
+ 182 [label="Function call arguments enter"];
subgraph cluster_53 {
color=blue
- 184 [label="Function call arguments enter"];
+ 183 [label="Function call arguments enter"];
subgraph cluster_54 {
color=blue
- 185 [label="Function call arguments enter"];
- 186 [label="Anonymous function capture"];
- 187 [label="Postponed enter to lambda"];
+ 184 [label="Function call arguments enter"];
+ 185 [label="Anonymous function capture"];
+ 186 [label="Postponed enter to lambda"];
subgraph cluster_55 {
color=blue
- 188 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 187 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_56 {
color=blue
- 189 [label="Enter block"];
+ 188 [label="Enter block"];
subgraph cluster_57 {
color=blue
- 190 [label="Function call arguments enter"];
- 191 [label="Access variable R|<local>/y|"];
- 192 [label="Function call arguments exit"];
+ 189 [label="Function call arguments enter"];
+ 190 [label="Access variable R|<local>/y|"];
+ 191 [label="Function call arguments exit"];
}
- 193 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
- 194 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
- 195 [label="Access variable R|<local>/x|"];
- 196 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
- 197 [label="Exit block"];
+ 192 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
+ 193 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 194 [label="Access variable R|<local>/x|"];
+ 195 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
+ 196 [label="Exit block"];
}
- 198 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 197 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 199 [label="Function call arguments exit"];
+ 198 [label="Function call arguments exit"];
}
- 200 [label="Function call enter: R|/atLeastOnce|<R|kotlin/Int|>(...)"];
- 201 [label="Postponed exit from lambda"];
- 202 [label="Function call exit: R|/atLeastOnce|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 203 [label="Function call arguments exit"];
+ 199 [label="Function call enter: R|/atLeastOnce|<R|kotlin/Int|>(...)"];
+ 200 [label="Postponed exit from lambda"];
+ 201 [label="Function call exit: R|/atLeastOnce|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 202 [label="Function call arguments exit"];
}
- 204 [label="Function call enter: R|/id|<R|kotlin/Int|>(...)"];
- 205 [label="Function call exit: R|/id|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 206 [label="Access variable R|<local>/y|"];
- 207 [label="Type operator: (R|<local>/y| as R|kotlin/Int|)"];
+ 203 [label="Function call enter: R|/id|<R|kotlin/Int|>(...)"];
+ 204 [label="Function call exit: R|/id|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 205 [label="Access variable R|<local>/y|"];
+ 206 [label="Type operator: (R|<local>/y| as R|kotlin/Int|)"];
subgraph cluster_58 {
color=blue
- 208 [label="Function call arguments enter"];
- 209 [label="Anonymous function capture"];
- 210 [label="Postponed enter to lambda"];
+ 207 [label="Function call arguments enter"];
+ 208 [label="Anonymous function capture"];
+ 209 [label="Postponed enter to lambda"];
subgraph cluster_59 {
color=blue
- 211 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 210 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_60 {
color=blue
- 212 [label="Enter block"];
+ 211 [label="Enter block"];
subgraph cluster_61 {
color=blue
- 213 [label="Function call arguments enter"];
- 214 [label="Access variable R|<local>/x|"];
- 215 [label="Function call arguments exit"];
+ 212 [label="Function call arguments enter"];
+ 213 [label="Access variable R|<local>/x|"];
+ 214 [label="Function call arguments exit"];
}
- 216 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
- 217 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 215 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
+ 216 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
subgraph cluster_62 {
color=blue
- 218 [label="Function call arguments enter"];
- 219 [label="Access variable R|<local>/y|"];
- 220 [label="Smart cast: R|<local>/y|"];
- 221 [label="Function call arguments exit"];
+ 217 [label="Function call arguments enter"];
+ 218 [label="Access variable R|<local>/y|"];
+ 219 [label="Smart cast: R|<local>/y|"];
+ 220 [label="Function call arguments exit"];
}
- 222 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
- 223 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
- 224 [label="Const: Int(1)"];
- 225 [label="Exit block"];
+ 221 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
+ 222 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 223 [label="Const: Int(1)"];
+ 224 [label="Exit block"];
}
- 226 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 225 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 227 [label="Function call arguments exit"];
+ 226 [label="Function call arguments exit"];
}
- 228 [label="Function call enter: R|/atLeastOnce|<R|kotlin/Int|>(...)"];
- 229 [label="Postponed exit from lambda"];
- 230 [label="Function call exit: R|/atLeastOnce|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 231 [label="Function call arguments exit"];
+ 227 [label="Function call enter: R|/atLeastOnce|<R|kotlin/Int|>(...)"];
+ 228 [label="Postponed exit from lambda"];
+ 229 [label="Function call exit: R|/atLeastOnce|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 230 [label="Function call arguments exit"];
}
- 232 [label="Function call enter: R|/select|<R|kotlin/Int|>(...)"];
- 233 [label="Function call exit: R|/select|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 234 [label="Function call arguments exit"];
+ 231 [label="Function call enter: R|/select|<R|kotlin/Int|>(...)"];
+ 232 [label="Function call exit: R|/select|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 233 [label="Function call arguments exit"];
}
- 235 [label="Function call enter: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()"];
- 236 [label="Function call exit: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 234 [label="Function call enter: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()"];
+ 235 [label="Function call exit: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
subgraph cluster_63 {
color=blue
- 237 [label="Function call arguments enter"];
- 238 [label="Access variable R|<local>/x|"];
- 239 [label="Function call arguments exit"];
+ 236 [label="Function call arguments enter"];
+ 237 [label="Access variable R|<local>/x|"];
+ 238 [label="Function call arguments exit"];
}
- 240 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
- 241 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 239 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
+ 240 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
subgraph cluster_64 {
color=blue
- 242 [label="Function call arguments enter"];
- 243 [label="Access variable R|<local>/y|"];
- 244 [label="Smart cast: R|<local>/y|"];
- 245 [label="Function call arguments exit"];
+ 241 [label="Function call arguments enter"];
+ 242 [label="Access variable R|<local>/y|"];
+ 243 [label="Smart cast: R|<local>/y|"];
+ 244 [label="Function call arguments exit"];
}
- 246 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
- 247 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
- 248 [label="Exit block"];
+ 245 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
+ 246 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 247 [label="Exit block"];
}
- 249 [label="Exit function completedCallAtLeastOnce" style="filled" fillcolor=red];
+ 248 [label="Exit function completedCallAtLeastOnce" style="filled" fillcolor=red];
}
+ 179 -> {180};
180 -> {181};
181 -> {182};
182 -> {183};
183 -> {184};
184 -> {185};
185 -> {186};
- 186 -> {187};
- 186 -> {188} [color=green label="CapturedByValue"];
- 187 -> {188 199};
- 187 -> {201} [style=dotted];
- 187 -> {188} [style=dashed];
+ 185 -> {187} [color=green label="CapturedByValue"];
+ 186 -> {187 198};
+ 186 -> {200} [style=dotted];
+ 186 -> {187} [style=dashed];
+ 187 -> {188};
188 -> {189};
189 -> {190};
190 -> {191};
@@ -666,13 +666,13 @@
194 -> {195};
195 -> {196};
196 -> {197};
- 197 -> {198};
- 198 -> {201};
- 199 -> {200};
- 200 -> {202};
- 201 -> {187} [color=green style=dashed];
- 201 -> {202} [color=green];
- 201 -> {233} [color=red label="Postponed"];
+ 197 -> {200};
+ 198 -> {199};
+ 199 -> {201};
+ 200 -> {186} [color=green style=dashed];
+ 200 -> {201} [color=green];
+ 200 -> {232} [color=red label="Postponed"];
+ 201 -> {202};
202 -> {203};
203 -> {204};
204 -> {205};
@@ -680,11 +680,11 @@
206 -> {207};
207 -> {208};
208 -> {209};
- 209 -> {210};
- 209 -> {211} [color=green label="CapturedByValue"];
- 210 -> {211 227};
- 210 -> {229} [style=dotted];
- 210 -> {211} [style=dashed];
+ 208 -> {210} [color=green label="CapturedByValue"];
+ 209 -> {210 226};
+ 209 -> {228} [style=dotted];
+ 209 -> {210} [style=dashed];
+ 210 -> {211};
211 -> {212};
212 -> {213};
213 -> {214};
@@ -699,13 +699,13 @@
222 -> {223};
223 -> {224};
224 -> {225};
- 225 -> {226};
- 226 -> {229};
- 227 -> {228};
- 228 -> {230};
- 229 -> {210} [color=green style=dashed];
- 229 -> {230} [color=green];
- 229 -> {233} [color=red label="Postponed"];
+ 225 -> {228};
+ 226 -> {227};
+ 227 -> {229};
+ 228 -> {209} [color=green style=dashed];
+ 228 -> {229} [color=green];
+ 228 -> {232} [color=red label="Postponed"];
+ 229 -> {230};
230 -> {231};
231 -> {232};
232 -> {233};
@@ -724,136 +724,136 @@
245 -> {246};
246 -> {247};
247 -> {248};
- 248 -> {249};
subgraph cluster_65 {
color=red
- 250 [label="Enter function completedCallAtMostOnce" style="filled" fillcolor=red];
+ 249 [label="Enter function completedCallAtMostOnce" style="filled" fillcolor=red];
subgraph cluster_66 {
color=blue
- 251 [label="Enter block"];
+ 250 [label="Enter block"];
subgraph cluster_67 {
color=blue
- 252 [label="Function call arguments enter"];
+ 251 [label="Function call arguments enter"];
subgraph cluster_68 {
color=blue
- 253 [label="Function call arguments enter"];
+ 252 [label="Function call arguments enter"];
subgraph cluster_69 {
color=blue
- 254 [label="Function call arguments enter"];
+ 253 [label="Function call arguments enter"];
subgraph cluster_70 {
color=blue
- 255 [label="Function call arguments enter"];
- 256 [label="Anonymous function capture"];
- 257 [label="Postponed enter to lambda"];
+ 254 [label="Function call arguments enter"];
+ 255 [label="Anonymous function capture"];
+ 256 [label="Postponed enter to lambda"];
subgraph cluster_71 {
color=blue
- 258 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 257 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_72 {
color=blue
- 259 [label="Enter block"];
+ 258 [label="Enter block"];
subgraph cluster_73 {
color=blue
- 260 [label="Function call arguments enter"];
- 261 [label="Access variable R|<local>/y|"];
- 262 [label="Function call arguments exit"];
+ 259 [label="Function call arguments enter"];
+ 260 [label="Access variable R|<local>/y|"];
+ 261 [label="Function call arguments exit"];
}
- 263 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
- 264 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
- 265 [label="Access variable R|<local>/x|"];
- 266 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
- 267 [label="Exit block"];
+ 262 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
+ 263 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 264 [label="Access variable R|<local>/x|"];
+ 265 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
+ 266 [label="Exit block"];
}
- 268 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 267 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 269 [label="Function call arguments exit"];
+ 268 [label="Function call arguments exit"];
}
- 270 [label="Function call enter: R|/atMostOnce|<R|kotlin/Int|>(...)"];
- 271 [label="Postponed exit from lambda"];
- 272 [label="Function call exit: R|/atMostOnce|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 273 [label="Function call arguments exit"];
+ 269 [label="Function call enter: R|/atMostOnce|<R|kotlin/Int|>(...)"];
+ 270 [label="Postponed exit from lambda"];
+ 271 [label="Function call exit: R|/atMostOnce|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 272 [label="Function call arguments exit"];
}
- 274 [label="Function call enter: R|/id|<R|kotlin/Int|>(...)"];
- 275 [label="Function call exit: R|/id|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 276 [label="Access variable R|<local>/y|"];
- 277 [label="Type operator: (R|<local>/y| as R|kotlin/Int|)"];
+ 273 [label="Function call enter: R|/id|<R|kotlin/Int|>(...)"];
+ 274 [label="Function call exit: R|/id|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 275 [label="Access variable R|<local>/y|"];
+ 276 [label="Type operator: (R|<local>/y| as R|kotlin/Int|)"];
subgraph cluster_74 {
color=blue
- 278 [label="Function call arguments enter"];
- 279 [label="Anonymous function capture"];
- 280 [label="Postponed enter to lambda"];
+ 277 [label="Function call arguments enter"];
+ 278 [label="Anonymous function capture"];
+ 279 [label="Postponed enter to lambda"];
subgraph cluster_75 {
color=blue
- 281 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 280 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_76 {
color=blue
- 282 [label="Enter block"];
+ 281 [label="Enter block"];
subgraph cluster_77 {
color=blue
- 283 [label="Function call arguments enter"];
- 284 [label="Access variable R|<local>/x|"];
- 285 [label="Function call arguments exit"];
+ 282 [label="Function call arguments enter"];
+ 283 [label="Access variable R|<local>/x|"];
+ 284 [label="Function call arguments exit"];
}
- 286 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
- 287 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 285 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
+ 286 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
subgraph cluster_78 {
color=blue
- 288 [label="Function call arguments enter"];
- 289 [label="Access variable R|<local>/y|"];
- 290 [label="Smart cast: R|<local>/y|"];
- 291 [label="Function call arguments exit"];
+ 287 [label="Function call arguments enter"];
+ 288 [label="Access variable R|<local>/y|"];
+ 289 [label="Smart cast: R|<local>/y|"];
+ 290 [label="Function call arguments exit"];
}
- 292 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
- 293 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
- 294 [label="Const: Int(1)"];
- 295 [label="Exit block"];
+ 291 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
+ 292 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 293 [label="Const: Int(1)"];
+ 294 [label="Exit block"];
}
- 296 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 295 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 297 [label="Function call arguments exit"];
+ 296 [label="Function call arguments exit"];
}
- 298 [label="Function call enter: R|/atMostOnce|<R|kotlin/Int|>(...)"];
- 299 [label="Postponed exit from lambda"];
- 300 [label="Function call exit: R|/atMostOnce|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 301 [label="Function call arguments exit"];
+ 297 [label="Function call enter: R|/atMostOnce|<R|kotlin/Int|>(...)"];
+ 298 [label="Postponed exit from lambda"];
+ 299 [label="Function call exit: R|/atMostOnce|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 300 [label="Function call arguments exit"];
}
- 302 [label="Function call enter: R|/select|<R|kotlin/Int|>(...)"];
- 303 [label="Function call exit: R|/select|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 304 [label="Function call arguments exit"];
+ 301 [label="Function call enter: R|/select|<R|kotlin/Int|>(...)"];
+ 302 [label="Function call exit: R|/select|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 303 [label="Function call arguments exit"];
}
- 305 [label="Function call enter: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()"];
- 306 [label="Function call exit: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 304 [label="Function call enter: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()"];
+ 305 [label="Function call exit: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
subgraph cluster_79 {
color=blue
- 307 [label="Function call arguments enter"];
- 308 [label="Access variable R|<local>/x|"];
- 309 [label="Function call arguments exit"];
+ 306 [label="Function call arguments enter"];
+ 307 [label="Access variable R|<local>/x|"];
+ 308 [label="Function call arguments exit"];
}
- 310 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
- 311 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 309 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
+ 310 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
subgraph cluster_80 {
color=blue
- 312 [label="Function call arguments enter"];
- 313 [label="Access variable R|<local>/y|"];
- 314 [label="Smart cast: R|<local>/y|"];
- 315 [label="Function call arguments exit"];
+ 311 [label="Function call arguments enter"];
+ 312 [label="Access variable R|<local>/y|"];
+ 313 [label="Smart cast: R|<local>/y|"];
+ 314 [label="Function call arguments exit"];
}
- 316 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
- 317 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
- 318 [label="Exit block"];
+ 315 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
+ 316 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 317 [label="Exit block"];
}
- 319 [label="Exit function completedCallAtMostOnce" style="filled" fillcolor=red];
+ 318 [label="Exit function completedCallAtMostOnce" style="filled" fillcolor=red];
}
+ 249 -> {250};
250 -> {251};
251 -> {252};
252 -> {253};
253 -> {254};
254 -> {255};
255 -> {256};
- 256 -> {257};
- 256 -> {258} [color=green label="CapturedByValue"];
- 257 -> {258 269 271};
- 257 -> {258} [style=dashed];
+ 255 -> {257} [color=green label="CapturedByValue"];
+ 256 -> {257 268 270};
+ 256 -> {257} [style=dashed];
+ 257 -> {258};
258 -> {259};
259 -> {260};
260 -> {261};
@@ -863,12 +863,12 @@
264 -> {265};
265 -> {266};
266 -> {267};
- 267 -> {268};
- 268 -> {271};
- 269 -> {270};
- 270 -> {272};
- 271 -> {272} [color=green];
- 271 -> {303} [color=red label="Postponed"];
+ 267 -> {270};
+ 268 -> {269};
+ 269 -> {271};
+ 270 -> {271} [color=green];
+ 270 -> {302} [color=red label="Postponed"];
+ 271 -> {272};
272 -> {273};
273 -> {274};
274 -> {275};
@@ -876,10 +876,10 @@
276 -> {277};
277 -> {278};
278 -> {279};
- 279 -> {280};
- 279 -> {281} [color=green label="CapturedByValue"];
- 280 -> {281 297 299};
- 280 -> {281} [style=dashed];
+ 278 -> {280} [color=green label="CapturedByValue"];
+ 279 -> {280 296 298};
+ 279 -> {280} [style=dashed];
+ 280 -> {281};
281 -> {282};
282 -> {283};
283 -> {284};
@@ -894,12 +894,12 @@
292 -> {293};
293 -> {294};
294 -> {295};
- 295 -> {296};
- 296 -> {299};
- 297 -> {298};
- 298 -> {300};
- 299 -> {300} [color=green];
- 299 -> {303} [color=red label="Postponed"];
+ 295 -> {298};
+ 296 -> {297};
+ 297 -> {299};
+ 298 -> {299} [color=green];
+ 298 -> {302} [color=red label="Postponed"];
+ 299 -> {300};
300 -> {301};
301 -> {302};
302 -> {303};
@@ -918,136 +918,136 @@
315 -> {316};
316 -> {317};
317 -> {318};
- 318 -> {319};
subgraph cluster_81 {
color=red
- 320 [label="Enter function completedCallUnknown" style="filled" fillcolor=red];
+ 319 [label="Enter function completedCallUnknown" style="filled" fillcolor=red];
subgraph cluster_82 {
color=blue
- 321 [label="Enter block"];
+ 320 [label="Enter block"];
subgraph cluster_83 {
color=blue
- 322 [label="Function call arguments enter"];
+ 321 [label="Function call arguments enter"];
subgraph cluster_84 {
color=blue
- 323 [label="Function call arguments enter"];
+ 322 [label="Function call arguments enter"];
subgraph cluster_85 {
color=blue
- 324 [label="Function call arguments enter"];
+ 323 [label="Function call arguments enter"];
subgraph cluster_86 {
color=blue
- 325 [label="Function call arguments enter"];
- 326 [label="Anonymous function capture"];
- 327 [label="Postponed enter to lambda"];
+ 324 [label="Function call arguments enter"];
+ 325 [label="Anonymous function capture"];
+ 326 [label="Postponed enter to lambda"];
subgraph cluster_87 {
color=blue
- 328 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 327 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_88 {
color=blue
- 329 [label="Enter block"];
+ 328 [label="Enter block"];
subgraph cluster_89 {
color=blue
- 330 [label="Function call arguments enter"];
- 331 [label="Access variable R|<local>/y|"];
- 332 [label="Function call arguments exit"];
+ 329 [label="Function call arguments enter"];
+ 330 [label="Access variable R|<local>/y|"];
+ 331 [label="Function call arguments exit"];
}
- 333 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
- 334 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
- 335 [label="Access variable R|<local>/x|"];
- 336 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
- 337 [label="Exit block"];
+ 332 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
+ 333 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 334 [label="Access variable R|<local>/x|"];
+ 335 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
+ 336 [label="Exit block"];
}
- 338 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 337 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 339 [label="Function call arguments exit"];
+ 338 [label="Function call arguments exit"];
}
- 340 [label="Function call enter: R|/unknown|<R|kotlin/Int|>(...)"];
- 341 [label="Postponed exit from lambda"];
- 342 [label="Function call exit: R|/unknown|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 343 [label="Function call arguments exit"];
+ 339 [label="Function call enter: R|/unknown|<R|kotlin/Int|>(...)"];
+ 340 [label="Postponed exit from lambda"];
+ 341 [label="Function call exit: R|/unknown|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 342 [label="Function call arguments exit"];
}
- 344 [label="Function call enter: R|/id|<R|kotlin/Int|>(...)"];
- 345 [label="Function call exit: R|/id|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 346 [label="Access variable R|<local>/y|"];
- 347 [label="Type operator: (R|<local>/y| as R|kotlin/Int|)"];
+ 343 [label="Function call enter: R|/id|<R|kotlin/Int|>(...)"];
+ 344 [label="Function call exit: R|/id|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 345 [label="Access variable R|<local>/y|"];
+ 346 [label="Type operator: (R|<local>/y| as R|kotlin/Int|)"];
subgraph cluster_90 {
color=blue
- 348 [label="Function call arguments enter"];
- 349 [label="Anonymous function capture"];
- 350 [label="Postponed enter to lambda"];
+ 347 [label="Function call arguments enter"];
+ 348 [label="Anonymous function capture"];
+ 349 [label="Postponed enter to lambda"];
subgraph cluster_91 {
color=blue
- 351 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 350 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_92 {
color=blue
- 352 [label="Enter block"];
+ 351 [label="Enter block"];
subgraph cluster_93 {
color=blue
- 353 [label="Function call arguments enter"];
- 354 [label="Access variable R|<local>/x|"];
- 355 [label="Function call arguments exit"];
+ 352 [label="Function call arguments enter"];
+ 353 [label="Access variable R|<local>/x|"];
+ 354 [label="Function call arguments exit"];
}
- 356 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
- 357 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 355 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
+ 356 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
subgraph cluster_94 {
color=blue
- 358 [label="Function call arguments enter"];
- 359 [label="Access variable R|<local>/y|"];
- 360 [label="Smart cast: R|<local>/y|"];
- 361 [label="Function call arguments exit"];
+ 357 [label="Function call arguments enter"];
+ 358 [label="Access variable R|<local>/y|"];
+ 359 [label="Smart cast: R|<local>/y|"];
+ 360 [label="Function call arguments exit"];
}
- 362 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
- 363 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
- 364 [label="Const: Int(1)"];
- 365 [label="Exit block"];
+ 361 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
+ 362 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 363 [label="Const: Int(1)"];
+ 364 [label="Exit block"];
}
- 366 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 365 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 367 [label="Function call arguments exit"];
+ 366 [label="Function call arguments exit"];
}
- 368 [label="Function call enter: R|/unknown|<R|kotlin/Int|>(...)"];
- 369 [label="Postponed exit from lambda"];
- 370 [label="Function call exit: R|/unknown|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 371 [label="Function call arguments exit"];
+ 367 [label="Function call enter: R|/unknown|<R|kotlin/Int|>(...)"];
+ 368 [label="Postponed exit from lambda"];
+ 369 [label="Function call exit: R|/unknown|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 370 [label="Function call arguments exit"];
}
- 372 [label="Function call enter: R|/select|<R|kotlin/Int|>(...)"];
- 373 [label="Function call exit: R|/select|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 374 [label="Function call arguments exit"];
+ 371 [label="Function call enter: R|/select|<R|kotlin/Int|>(...)"];
+ 372 [label="Function call exit: R|/select|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 373 [label="Function call arguments exit"];
}
- 375 [label="Function call enter: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()"];
- 376 [label="Function call exit: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 374 [label="Function call enter: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()"];
+ 375 [label="Function call exit: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
subgraph cluster_95 {
color=blue
- 377 [label="Function call arguments enter"];
- 378 [label="Access variable R|<local>/x|"];
- 379 [label="Function call arguments exit"];
+ 376 [label="Function call arguments enter"];
+ 377 [label="Access variable R|<local>/x|"];
+ 378 [label="Function call arguments exit"];
}
- 380 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
- 381 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 379 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
+ 380 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
subgraph cluster_96 {
color=blue
- 382 [label="Function call arguments enter"];
- 383 [label="Access variable R|<local>/y|"];
- 384 [label="Smart cast: R|<local>/y|"];
- 385 [label="Function call arguments exit"];
+ 381 [label="Function call arguments enter"];
+ 382 [label="Access variable R|<local>/y|"];
+ 383 [label="Smart cast: R|<local>/y|"];
+ 384 [label="Function call arguments exit"];
}
- 386 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
- 387 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
- 388 [label="Exit block"];
+ 385 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
+ 386 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 387 [label="Exit block"];
}
- 389 [label="Exit function completedCallUnknown" style="filled" fillcolor=red];
+ 388 [label="Exit function completedCallUnknown" style="filled" fillcolor=red];
}
+ 319 -> {320};
320 -> {321};
321 -> {322};
322 -> {323};
323 -> {324};
324 -> {325};
325 -> {326};
- 326 -> {327};
- 326 -> {328} [color=green label="CapturedByValue"];
- 327 -> {328 339 341};
- 327 -> {328} [style=dashed];
+ 325 -> {327} [color=green label="CapturedByValue"];
+ 326 -> {327 338 340};
+ 326 -> {327} [style=dashed];
+ 327 -> {328};
328 -> {329};
329 -> {330};
330 -> {331};
@@ -1057,13 +1057,13 @@
334 -> {335};
335 -> {336};
336 -> {337};
- 337 -> {338};
- 338 -> {341};
- 339 -> {340};
- 340 -> {342};
- 341 -> {327} [color=green style=dashed];
- 341 -> {342} [color=green];
- 341 -> {373} [color=red label="Postponed"];
+ 337 -> {340};
+ 338 -> {339};
+ 339 -> {341};
+ 340 -> {326} [color=green style=dashed];
+ 340 -> {341} [color=green];
+ 340 -> {372} [color=red label="Postponed"];
+ 341 -> {342};
342 -> {343};
343 -> {344};
344 -> {345};
@@ -1071,10 +1071,10 @@
346 -> {347};
347 -> {348};
348 -> {349};
- 349 -> {350};
- 349 -> {351} [color=green label="CapturedByValue"];
- 350 -> {351 367 369};
- 350 -> {351} [style=dashed];
+ 348 -> {350} [color=green label="CapturedByValue"];
+ 349 -> {350 366 368};
+ 349 -> {350} [style=dashed];
+ 350 -> {351};
351 -> {352};
352 -> {353};
353 -> {354};
@@ -1089,13 +1089,13 @@
362 -> {363};
363 -> {364};
364 -> {365};
- 365 -> {366};
- 366 -> {369};
- 367 -> {368};
- 368 -> {370};
- 369 -> {350} [color=green style=dashed];
- 369 -> {370} [color=green];
- 369 -> {373} [color=red label="Postponed"];
+ 365 -> {368};
+ 366 -> {367};
+ 367 -> {369};
+ 368 -> {349} [color=green style=dashed];
+ 368 -> {369} [color=green];
+ 368 -> {372} [color=red label="Postponed"];
+ 369 -> {370};
370 -> {371};
371 -> {372};
372 -> {373};
@@ -1114,136 +1114,136 @@
385 -> {386};
386 -> {387};
387 -> {388};
- 388 -> {389};
subgraph cluster_97 {
color=red
- 390 [label="Enter function completedCallNoContract" style="filled" fillcolor=red];
+ 389 [label="Enter function completedCallNoContract" style="filled" fillcolor=red];
subgraph cluster_98 {
color=blue
- 391 [label="Enter block"];
+ 390 [label="Enter block"];
subgraph cluster_99 {
color=blue
- 392 [label="Function call arguments enter"];
+ 391 [label="Function call arguments enter"];
subgraph cluster_100 {
color=blue
- 393 [label="Function call arguments enter"];
+ 392 [label="Function call arguments enter"];
subgraph cluster_101 {
color=blue
- 394 [label="Function call arguments enter"];
+ 393 [label="Function call arguments enter"];
subgraph cluster_102 {
color=blue
- 395 [label="Function call arguments enter"];
- 396 [label="Anonymous function capture"];
- 397 [label="Postponed enter to lambda"];
+ 394 [label="Function call arguments enter"];
+ 395 [label="Anonymous function capture"];
+ 396 [label="Postponed enter to lambda"];
subgraph cluster_103 {
color=blue
- 398 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 397 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_104 {
color=blue
- 399 [label="Enter block"];
+ 398 [label="Enter block"];
subgraph cluster_105 {
color=blue
- 400 [label="Function call arguments enter"];
- 401 [label="Access variable R|<local>/y|"];
- 402 [label="Function call arguments exit"];
+ 399 [label="Function call arguments enter"];
+ 400 [label="Access variable R|<local>/y|"];
+ 401 [label="Function call arguments exit"];
}
- 403 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
- 404 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
- 405 [label="Access variable R|<local>/x|"];
- 406 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
- 407 [label="Exit block"];
+ 402 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
+ 403 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 404 [label="Access variable R|<local>/x|"];
+ 405 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
+ 406 [label="Exit block"];
}
- 408 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 407 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 409 [label="Function call arguments exit"];
+ 408 [label="Function call arguments exit"];
}
- 410 [label="Function call enter: R|/noContract|<R|kotlin/Int|>(...)"];
- 411 [label="Postponed exit from lambda"];
- 412 [label="Function call exit: R|/noContract|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 413 [label="Function call arguments exit"];
+ 409 [label="Function call enter: R|/noContract|<R|kotlin/Int|>(...)"];
+ 410 [label="Postponed exit from lambda"];
+ 411 [label="Function call exit: R|/noContract|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 412 [label="Function call arguments exit"];
}
- 414 [label="Function call enter: R|/id|<R|kotlin/Int|>(...)"];
- 415 [label="Function call exit: R|/id|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 416 [label="Access variable R|<local>/y|"];
- 417 [label="Type operator: (R|<local>/y| as R|kotlin/Int|)"];
+ 413 [label="Function call enter: R|/id|<R|kotlin/Int|>(...)"];
+ 414 [label="Function call exit: R|/id|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 415 [label="Access variable R|<local>/y|"];
+ 416 [label="Type operator: (R|<local>/y| as R|kotlin/Int|)"];
subgraph cluster_106 {
color=blue
- 418 [label="Function call arguments enter"];
- 419 [label="Anonymous function capture"];
- 420 [label="Postponed enter to lambda"];
+ 417 [label="Function call arguments enter"];
+ 418 [label="Anonymous function capture"];
+ 419 [label="Postponed enter to lambda"];
subgraph cluster_107 {
color=blue
- 421 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 420 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_108 {
color=blue
- 422 [label="Enter block"];
+ 421 [label="Enter block"];
subgraph cluster_109 {
color=blue
- 423 [label="Function call arguments enter"];
- 424 [label="Access variable R|<local>/x|"];
- 425 [label="Function call arguments exit"];
+ 422 [label="Function call arguments enter"];
+ 423 [label="Access variable R|<local>/x|"];
+ 424 [label="Function call arguments exit"];
}
- 426 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
- 427 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 425 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
+ 426 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
subgraph cluster_110 {
color=blue
- 428 [label="Function call arguments enter"];
- 429 [label="Access variable R|<local>/y|"];
- 430 [label="Smart cast: R|<local>/y|"];
- 431 [label="Function call arguments exit"];
+ 427 [label="Function call arguments enter"];
+ 428 [label="Access variable R|<local>/y|"];
+ 429 [label="Smart cast: R|<local>/y|"];
+ 430 [label="Function call arguments exit"];
}
- 432 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
- 433 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
- 434 [label="Const: Int(1)"];
- 435 [label="Exit block"];
+ 431 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
+ 432 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 433 [label="Const: Int(1)"];
+ 434 [label="Exit block"];
}
- 436 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 435 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 437 [label="Function call arguments exit"];
+ 436 [label="Function call arguments exit"];
}
- 438 [label="Function call enter: R|/noContract|<R|kotlin/Int|>(...)"];
- 439 [label="Postponed exit from lambda"];
- 440 [label="Function call exit: R|/noContract|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 441 [label="Function call arguments exit"];
+ 437 [label="Function call enter: R|/noContract|<R|kotlin/Int|>(...)"];
+ 438 [label="Postponed exit from lambda"];
+ 439 [label="Function call exit: R|/noContract|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 440 [label="Function call arguments exit"];
}
- 442 [label="Function call enter: R|/select|<R|kotlin/Int|>(...)"];
- 443 [label="Function call exit: R|/select|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 444 [label="Function call arguments exit"];
+ 441 [label="Function call enter: R|/select|<R|kotlin/Int|>(...)"];
+ 442 [label="Function call exit: R|/select|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 443 [label="Function call arguments exit"];
}
- 445 [label="Function call enter: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()"];
- 446 [label="Function call exit: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 444 [label="Function call enter: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()"];
+ 445 [label="Function call exit: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
subgraph cluster_111 {
color=blue
- 447 [label="Function call arguments enter"];
- 448 [label="Access variable R|<local>/x|"];
- 449 [label="Function call arguments exit"];
+ 446 [label="Function call arguments enter"];
+ 447 [label="Access variable R|<local>/x|"];
+ 448 [label="Function call arguments exit"];
}
- 450 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
- 451 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 449 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
+ 450 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
subgraph cluster_112 {
color=blue
- 452 [label="Function call arguments enter"];
- 453 [label="Access variable R|<local>/y|"];
- 454 [label="Smart cast: R|<local>/y|"];
- 455 [label="Function call arguments exit"];
+ 451 [label="Function call arguments enter"];
+ 452 [label="Access variable R|<local>/y|"];
+ 453 [label="Smart cast: R|<local>/y|"];
+ 454 [label="Function call arguments exit"];
}
- 456 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
- 457 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
- 458 [label="Exit block"];
+ 455 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
+ 456 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 457 [label="Exit block"];
}
- 459 [label="Exit function completedCallNoContract" style="filled" fillcolor=red];
+ 458 [label="Exit function completedCallNoContract" style="filled" fillcolor=red];
}
+ 389 -> {390};
390 -> {391};
391 -> {392};
392 -> {393};
393 -> {394};
394 -> {395};
395 -> {396};
- 396 -> {397};
- 396 -> {398} [color=green label="CapturedByValue"];
- 397 -> {398 409 411};
- 397 -> {398} [style=dashed];
+ 395 -> {397} [color=green label="CapturedByValue"];
+ 396 -> {397 408 410};
+ 396 -> {397} [style=dashed];
+ 397 -> {398};
398 -> {399};
399 -> {400};
400 -> {401};
@@ -1253,12 +1253,12 @@
404 -> {405};
405 -> {406};
406 -> {407};
- 407 -> {408};
- 408 -> {398} [color=green style=dashed];
- 409 -> {410};
- 410 -> {412};
- 411 -> {412} [color=green];
- 411 -> {443} [color=red label="Postponed"];
+ 407 -> {397} [color=green style=dashed];
+ 408 -> {409};
+ 409 -> {411};
+ 410 -> {411} [color=green];
+ 410 -> {442} [color=red label="Postponed"];
+ 411 -> {412};
412 -> {413};
413 -> {414};
414 -> {415};
@@ -1266,10 +1266,10 @@
416 -> {417};
417 -> {418};
418 -> {419};
- 419 -> {420};
- 419 -> {421} [color=green label="CapturedByValue"];
- 420 -> {421 437 439};
- 420 -> {421} [style=dashed];
+ 418 -> {420} [color=green label="CapturedByValue"];
+ 419 -> {420 436 438};
+ 419 -> {420} [style=dashed];
+ 420 -> {421};
421 -> {422};
422 -> {423};
423 -> {424};
@@ -1284,12 +1284,12 @@
432 -> {433};
433 -> {434};
434 -> {435};
- 435 -> {436};
- 436 -> {421} [color=green style=dashed];
- 437 -> {438};
- 438 -> {440};
- 439 -> {440} [color=green];
- 439 -> {443} [color=red label="Postponed"];
+ 435 -> {420} [color=green style=dashed];
+ 436 -> {437};
+ 437 -> {439};
+ 438 -> {439} [color=green];
+ 438 -> {442} [color=red label="Postponed"];
+ 439 -> {440};
440 -> {441};
441 -> {442};
442 -> {443};
@@ -1308,152 +1308,152 @@
455 -> {456};
456 -> {457};
457 -> {458};
- 458 -> {459};
subgraph cluster_113 {
color=red
- 460 [label="Enter function incompleteCallExactlyOnce" style="filled" fillcolor=red];
+ 459 [label="Enter function incompleteCallExactlyOnce" style="filled" fillcolor=red];
subgraph cluster_114 {
color=blue
- 461 [label="Enter block"];
+ 460 [label="Enter block"];
subgraph cluster_115 {
color=blue
- 462 [label="Function call arguments enter"];
+ 461 [label="Function call arguments enter"];
subgraph cluster_116 {
color=blue
- 463 [label="Function call arguments enter"];
+ 462 [label="Function call arguments enter"];
subgraph cluster_117 {
color=blue
- 464 [label="Function call arguments enter"];
+ 463 [label="Function call arguments enter"];
subgraph cluster_118 {
color=blue
- 465 [label="Function call arguments enter"];
- 466 [label="Anonymous function capture"];
- 467 [label="Postponed enter to lambda"];
+ 464 [label="Function call arguments enter"];
+ 465 [label="Anonymous function capture"];
+ 466 [label="Postponed enter to lambda"];
subgraph cluster_119 {
color=blue
- 468 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 467 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_120 {
color=blue
- 469 [label="Enter block"];
- 470 [label="Access variable R|<local>/x|"];
- 471 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
+ 468 [label="Enter block"];
+ 469 [label="Access variable R|<local>/x|"];
+ 470 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
subgraph cluster_121 {
color=blue
- 472 [label="Function call arguments enter"];
- 473 [label="Access variable R|<local>/y|"];
- 474 [label="Function call arguments exit"];
+ 471 [label="Function call arguments enter"];
+ 472 [label="Access variable R|<local>/y|"];
+ 473 [label="Function call arguments exit"];
}
- 475 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
- 476 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 474 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
+ 475 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
subgraph cluster_122 {
color=blue
- 477 [label="Function call arguments enter"];
- 478 [label="Access variable R|<local>/x|"];
- 479 [label="Smart cast: R|<local>/x|"];
- 480 [label="Function call arguments exit"];
+ 476 [label="Function call arguments enter"];
+ 477 [label="Access variable R|<local>/x|"];
+ 478 [label="Smart cast: R|<local>/x|"];
+ 479 [label="Function call arguments exit"];
}
- 481 [label="Function call enter: R|<local>/x|.R|kotlin/Int.inc|()"];
- 482 [label="Function call exit: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 480 [label="Function call enter: R|<local>/x|.R|kotlin/Int.inc|()"];
+ 481 [label="Function call exit: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
subgraph cluster_123 {
color=blue
- 483 [label="Function call arguments enter"];
- 484 [label="Function call arguments exit"];
+ 482 [label="Function call arguments enter"];
+ 483 [label="Function call arguments exit"];
}
- 485 [label="Function call enter: R|/materialize|<R|kotlin/Int|>()"];
- 486 [label="Function call exit: R|/materialize|<R|kotlin/Int|>()" style="filled" fillcolor=yellow];
- 487 [label="Exit block"];
+ 484 [label="Function call enter: R|/materialize|<R|kotlin/Int|>()"];
+ 485 [label="Function call exit: R|/materialize|<R|kotlin/Int|>()" style="filled" fillcolor=yellow];
+ 486 [label="Exit block"];
}
- 488 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 487 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 489 [label="Function call arguments exit"];
+ 488 [label="Function call arguments exit"];
}
- 490 [label="Function call enter: R|/exactlyOnce|<R|kotlin/Int|>(...)"];
- 491 [label="Postponed exit from lambda"];
- 492 [label="Function call exit: R|/exactlyOnce|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 493 [label="Function call arguments exit"];
+ 489 [label="Function call enter: R|/exactlyOnce|<R|kotlin/Int|>(...)"];
+ 490 [label="Postponed exit from lambda"];
+ 491 [label="Function call exit: R|/exactlyOnce|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 492 [label="Function call arguments exit"];
}
- 494 [label="Function call enter: R|/id|<R|kotlin/Int|>(...)"];
- 495 [label="Function call exit: R|/id|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 493 [label="Function call enter: R|/id|<R|kotlin/Int|>(...)"];
+ 494 [label="Function call exit: R|/id|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
subgraph cluster_124 {
color=blue
- 496 [label="Function call arguments enter"];
- 497 [label="Anonymous function capture"];
- 498 [label="Postponed enter to lambda"];
+ 495 [label="Function call arguments enter"];
+ 496 [label="Anonymous function capture"];
+ 497 [label="Postponed enter to lambda"];
subgraph cluster_125 {
color=blue
- 499 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 498 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_126 {
color=blue
- 500 [label="Enter block"];
- 501 [label="Access variable R|<local>/y|"];
- 502 [label="Type operator: (R|<local>/y| as R|kotlin/Int|)"];
+ 499 [label="Enter block"];
+ 500 [label="Access variable R|<local>/y|"];
+ 501 [label="Type operator: (R|<local>/y| as R|kotlin/Int|)"];
subgraph cluster_127 {
color=blue
- 503 [label="Function call arguments enter"];
- 504 [label="Access variable R|<local>/x|"];
- 505 [label="Function call arguments exit"];
+ 502 [label="Function call arguments enter"];
+ 503 [label="Access variable R|<local>/x|"];
+ 504 [label="Function call arguments exit"];
}
- 506 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
- 507 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 505 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
+ 506 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
subgraph cluster_128 {
color=blue
- 508 [label="Function call arguments enter"];
- 509 [label="Access variable R|<local>/y|"];
- 510 [label="Smart cast: R|<local>/y|"];
- 511 [label="Function call arguments exit"];
+ 507 [label="Function call arguments enter"];
+ 508 [label="Access variable R|<local>/y|"];
+ 509 [label="Smart cast: R|<local>/y|"];
+ 510 [label="Function call arguments exit"];
}
- 512 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
- 513 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
- 514 [label="Const: Int(1)"];
- 515 [label="Exit block"];
+ 511 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
+ 512 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 513 [label="Const: Int(1)"];
+ 514 [label="Exit block"];
}
- 516 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 515 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 517 [label="Function call arguments exit"];
+ 516 [label="Function call arguments exit"];
}
- 518 [label="Function call enter: R|/exactlyOnce|<R|kotlin/Int|>(...)"];
- 519 [label="Postponed exit from lambda"];
- 520 [label="Function call exit: R|/exactlyOnce|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 521 [label="Function call arguments exit"];
+ 517 [label="Function call enter: R|/exactlyOnce|<R|kotlin/Int|>(...)"];
+ 518 [label="Postponed exit from lambda"];
+ 519 [label="Function call exit: R|/exactlyOnce|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 520 [label="Function call arguments exit"];
}
- 522 [label="Function call enter: R|/select|<R|kotlin/Int|>(...)"];
- 523 [label="Function call exit: R|/select|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 524 [label="Function call arguments exit"];
+ 521 [label="Function call enter: R|/select|<R|kotlin/Int|>(...)"];
+ 522 [label="Function call exit: R|/select|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 523 [label="Function call arguments exit"];
}
- 525 [label="Function call enter: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()"];
- 526 [label="Function call exit: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 524 [label="Function call enter: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()"];
+ 525 [label="Function call exit: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
subgraph cluster_129 {
color=blue
- 527 [label="Function call arguments enter"];
- 528 [label="Access variable R|<local>/x|"];
- 529 [label="Function call arguments exit"];
+ 526 [label="Function call arguments enter"];
+ 527 [label="Access variable R|<local>/x|"];
+ 528 [label="Function call arguments exit"];
}
- 530 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
- 531 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 529 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
+ 530 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
subgraph cluster_130 {
color=blue
- 532 [label="Function call arguments enter"];
- 533 [label="Access variable R|<local>/y|"];
- 534 [label="Function call arguments exit"];
+ 531 [label="Function call arguments enter"];
+ 532 [label="Access variable R|<local>/y|"];
+ 533 [label="Function call arguments exit"];
}
- 535 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
- 536 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
- 537 [label="Exit block"];
+ 534 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
+ 535 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 536 [label="Exit block"];
}
- 538 [label="Exit function incompleteCallExactlyOnce" style="filled" fillcolor=red];
+ 537 [label="Exit function incompleteCallExactlyOnce" style="filled" fillcolor=red];
}
+ 459 -> {460};
460 -> {461};
461 -> {462};
462 -> {463};
463 -> {464};
464 -> {465};
465 -> {466};
- 466 -> {467};
- 466 -> {468} [color=green label="CapturedByValue"];
- 467 -> {468 489};
- 467 -> {491} [style=dotted];
- 467 -> {468} [style=dashed];
+ 465 -> {467} [color=green label="CapturedByValue"];
+ 466 -> {467 488};
+ 466 -> {490} [style=dotted];
+ 466 -> {467} [style=dashed];
+ 467 -> {468};
468 -> {469};
469 -> {470};
470 -> {471};
@@ -1473,22 +1473,22 @@
484 -> {485};
485 -> {486};
486 -> {487};
- 487 -> {488};
- 488 -> {491};
- 489 -> {490};
- 490 -> {492};
- 491 -> {492} [color=green];
- 491 -> {523} [color=red label="Postponed"];
+ 487 -> {490};
+ 488 -> {489};
+ 489 -> {491};
+ 490 -> {491} [color=green];
+ 490 -> {522} [color=red label="Postponed"];
+ 491 -> {492};
492 -> {493};
493 -> {494};
494 -> {495};
495 -> {496};
496 -> {497};
- 497 -> {498};
- 497 -> {499} [color=green label="CapturedByValue"];
- 498 -> {499 517};
- 498 -> {519} [style=dotted];
- 498 -> {499} [style=dashed];
+ 496 -> {498} [color=green label="CapturedByValue"];
+ 497 -> {498 516};
+ 497 -> {518} [style=dotted];
+ 497 -> {498} [style=dashed];
+ 498 -> {499};
499 -> {500};
500 -> {501};
501 -> {502};
@@ -1505,12 +1505,12 @@
512 -> {513};
513 -> {514};
514 -> {515};
- 515 -> {516};
- 516 -> {519};
- 517 -> {518};
- 518 -> {520};
- 519 -> {520} [color=green];
- 519 -> {523} [color=red label="Postponed"];
+ 515 -> {518};
+ 516 -> {517};
+ 517 -> {519};
+ 518 -> {519} [color=green];
+ 518 -> {522} [color=red label="Postponed"];
+ 519 -> {520};
520 -> {521};
521 -> {522};
522 -> {523};
@@ -1528,152 +1528,152 @@
534 -> {535};
535 -> {536};
536 -> {537};
- 537 -> {538};
subgraph cluster_131 {
color=red
- 539 [label="Enter function incompleteCallAtLeastOnce" style="filled" fillcolor=red];
+ 538 [label="Enter function incompleteCallAtLeastOnce" style="filled" fillcolor=red];
subgraph cluster_132 {
color=blue
- 540 [label="Enter block"];
+ 539 [label="Enter block"];
subgraph cluster_133 {
color=blue
- 541 [label="Function call arguments enter"];
+ 540 [label="Function call arguments enter"];
subgraph cluster_134 {
color=blue
- 542 [label="Function call arguments enter"];
+ 541 [label="Function call arguments enter"];
subgraph cluster_135 {
color=blue
- 543 [label="Function call arguments enter"];
+ 542 [label="Function call arguments enter"];
subgraph cluster_136 {
color=blue
- 544 [label="Function call arguments enter"];
- 545 [label="Anonymous function capture"];
- 546 [label="Postponed enter to lambda"];
+ 543 [label="Function call arguments enter"];
+ 544 [label="Anonymous function capture"];
+ 545 [label="Postponed enter to lambda"];
subgraph cluster_137 {
color=blue
- 547 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 546 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_138 {
color=blue
- 548 [label="Enter block"];
- 549 [label="Access variable R|<local>/x|"];
- 550 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
+ 547 [label="Enter block"];
+ 548 [label="Access variable R|<local>/x|"];
+ 549 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
subgraph cluster_139 {
color=blue
- 551 [label="Function call arguments enter"];
- 552 [label="Access variable R|<local>/y|"];
- 553 [label="Function call arguments exit"];
+ 550 [label="Function call arguments enter"];
+ 551 [label="Access variable R|<local>/y|"];
+ 552 [label="Function call arguments exit"];
}
- 554 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
- 555 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 553 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
+ 554 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
subgraph cluster_140 {
color=blue
- 556 [label="Function call arguments enter"];
- 557 [label="Access variable R|<local>/x|"];
- 558 [label="Smart cast: R|<local>/x|"];
- 559 [label="Function call arguments exit"];
+ 555 [label="Function call arguments enter"];
+ 556 [label="Access variable R|<local>/x|"];
+ 557 [label="Smart cast: R|<local>/x|"];
+ 558 [label="Function call arguments exit"];
}
- 560 [label="Function call enter: R|<local>/x|.R|kotlin/Int.inc|()"];
- 561 [label="Function call exit: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 559 [label="Function call enter: R|<local>/x|.R|kotlin/Int.inc|()"];
+ 560 [label="Function call exit: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
subgraph cluster_141 {
color=blue
- 562 [label="Function call arguments enter"];
- 563 [label="Function call arguments exit"];
+ 561 [label="Function call arguments enter"];
+ 562 [label="Function call arguments exit"];
}
- 564 [label="Function call enter: R|/materialize|<R|kotlin/Int|>()"];
- 565 [label="Function call exit: R|/materialize|<R|kotlin/Int|>()" style="filled" fillcolor=yellow];
- 566 [label="Exit block"];
+ 563 [label="Function call enter: R|/materialize|<R|kotlin/Int|>()"];
+ 564 [label="Function call exit: R|/materialize|<R|kotlin/Int|>()" style="filled" fillcolor=yellow];
+ 565 [label="Exit block"];
}
- 567 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 566 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 568 [label="Function call arguments exit"];
+ 567 [label="Function call arguments exit"];
}
- 569 [label="Function call enter: R|/atLeastOnce|<R|kotlin/Int|>(...)"];
- 570 [label="Postponed exit from lambda"];
- 571 [label="Function call exit: R|/atLeastOnce|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 572 [label="Function call arguments exit"];
+ 568 [label="Function call enter: R|/atLeastOnce|<R|kotlin/Int|>(...)"];
+ 569 [label="Postponed exit from lambda"];
+ 570 [label="Function call exit: R|/atLeastOnce|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 571 [label="Function call arguments exit"];
}
- 573 [label="Function call enter: R|/id|<R|kotlin/Int|>(...)"];
- 574 [label="Function call exit: R|/id|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 572 [label="Function call enter: R|/id|<R|kotlin/Int|>(...)"];
+ 573 [label="Function call exit: R|/id|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
subgraph cluster_142 {
color=blue
- 575 [label="Function call arguments enter"];
- 576 [label="Anonymous function capture"];
- 577 [label="Postponed enter to lambda"];
+ 574 [label="Function call arguments enter"];
+ 575 [label="Anonymous function capture"];
+ 576 [label="Postponed enter to lambda"];
subgraph cluster_143 {
color=blue
- 578 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 577 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_144 {
color=blue
- 579 [label="Enter block"];
- 580 [label="Access variable R|<local>/y|"];
- 581 [label="Type operator: (R|<local>/y| as R|kotlin/Int|)"];
+ 578 [label="Enter block"];
+ 579 [label="Access variable R|<local>/y|"];
+ 580 [label="Type operator: (R|<local>/y| as R|kotlin/Int|)"];
subgraph cluster_145 {
color=blue
- 582 [label="Function call arguments enter"];
- 583 [label="Access variable R|<local>/x|"];
- 584 [label="Function call arguments exit"];
+ 581 [label="Function call arguments enter"];
+ 582 [label="Access variable R|<local>/x|"];
+ 583 [label="Function call arguments exit"];
}
- 585 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
- 586 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 584 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
+ 585 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
subgraph cluster_146 {
color=blue
- 587 [label="Function call arguments enter"];
- 588 [label="Access variable R|<local>/y|"];
- 589 [label="Smart cast: R|<local>/y|"];
- 590 [label="Function call arguments exit"];
+ 586 [label="Function call arguments enter"];
+ 587 [label="Access variable R|<local>/y|"];
+ 588 [label="Smart cast: R|<local>/y|"];
+ 589 [label="Function call arguments exit"];
}
- 591 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
- 592 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
- 593 [label="Const: Int(1)"];
- 594 [label="Exit block"];
+ 590 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
+ 591 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 592 [label="Const: Int(1)"];
+ 593 [label="Exit block"];
}
- 595 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 594 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 596 [label="Function call arguments exit"];
+ 595 [label="Function call arguments exit"];
}
- 597 [label="Function call enter: R|/atLeastOnce|<R|kotlin/Int|>(...)"];
- 598 [label="Postponed exit from lambda"];
- 599 [label="Function call exit: R|/atLeastOnce|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 600 [label="Function call arguments exit"];
+ 596 [label="Function call enter: R|/atLeastOnce|<R|kotlin/Int|>(...)"];
+ 597 [label="Postponed exit from lambda"];
+ 598 [label="Function call exit: R|/atLeastOnce|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 599 [label="Function call arguments exit"];
}
- 601 [label="Function call enter: R|/select|<R|kotlin/Int|>(...)"];
- 602 [label="Function call exit: R|/select|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 603 [label="Function call arguments exit"];
+ 600 [label="Function call enter: R|/select|<R|kotlin/Int|>(...)"];
+ 601 [label="Function call exit: R|/select|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 602 [label="Function call arguments exit"];
}
- 604 [label="Function call enter: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()"];
- 605 [label="Function call exit: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 603 [label="Function call enter: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()"];
+ 604 [label="Function call exit: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
subgraph cluster_147 {
color=blue
- 606 [label="Function call arguments enter"];
- 607 [label="Access variable R|<local>/x|"];
- 608 [label="Function call arguments exit"];
+ 605 [label="Function call arguments enter"];
+ 606 [label="Access variable R|<local>/x|"];
+ 607 [label="Function call arguments exit"];
}
- 609 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
- 610 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 608 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
+ 609 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
subgraph cluster_148 {
color=blue
- 611 [label="Function call arguments enter"];
- 612 [label="Access variable R|<local>/y|"];
- 613 [label="Function call arguments exit"];
+ 610 [label="Function call arguments enter"];
+ 611 [label="Access variable R|<local>/y|"];
+ 612 [label="Function call arguments exit"];
}
- 614 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
- 615 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
- 616 [label="Exit block"];
+ 613 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
+ 614 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 615 [label="Exit block"];
}
- 617 [label="Exit function incompleteCallAtLeastOnce" style="filled" fillcolor=red];
+ 616 [label="Exit function incompleteCallAtLeastOnce" style="filled" fillcolor=red];
}
+ 538 -> {539};
539 -> {540};
540 -> {541};
541 -> {542};
542 -> {543};
543 -> {544};
544 -> {545};
- 545 -> {546};
- 545 -> {547} [color=green label="CapturedByValue"];
- 546 -> {547 568};
- 546 -> {570} [style=dotted];
- 546 -> {547} [style=dashed];
+ 544 -> {546} [color=green label="CapturedByValue"];
+ 545 -> {546 567};
+ 545 -> {569} [style=dotted];
+ 545 -> {546} [style=dashed];
+ 546 -> {547};
547 -> {548};
548 -> {549};
549 -> {550};
@@ -1693,23 +1693,23 @@
563 -> {564};
564 -> {565};
565 -> {566};
- 566 -> {567};
- 567 -> {570};
- 568 -> {569};
- 569 -> {571};
- 570 -> {546} [color=green style=dashed];
- 570 -> {571} [color=green];
- 570 -> {602} [color=red label="Postponed"];
+ 566 -> {569};
+ 567 -> {568};
+ 568 -> {570};
+ 569 -> {545} [color=green style=dashed];
+ 569 -> {570} [color=green];
+ 569 -> {601} [color=red label="Postponed"];
+ 570 -> {571};
571 -> {572};
572 -> {573};
573 -> {574};
574 -> {575};
575 -> {576};
- 576 -> {577};
- 576 -> {578} [color=green label="CapturedByValue"];
- 577 -> {578 596};
- 577 -> {598} [style=dotted];
- 577 -> {578} [style=dashed];
+ 575 -> {577} [color=green label="CapturedByValue"];
+ 576 -> {577 595};
+ 576 -> {597} [style=dotted];
+ 576 -> {577} [style=dashed];
+ 577 -> {578};
578 -> {579};
579 -> {580};
580 -> {581};
@@ -1726,13 +1726,13 @@
591 -> {592};
592 -> {593};
593 -> {594};
- 594 -> {595};
- 595 -> {598};
- 596 -> {597};
- 597 -> {599};
- 598 -> {577} [color=green style=dashed];
- 598 -> {599} [color=green];
- 598 -> {602} [color=red label="Postponed"];
+ 594 -> {597};
+ 595 -> {596};
+ 596 -> {598};
+ 597 -> {576} [color=green style=dashed];
+ 597 -> {598} [color=green];
+ 597 -> {601} [color=red label="Postponed"];
+ 598 -> {599};
599 -> {600};
600 -> {601};
601 -> {602};
@@ -1750,151 +1750,151 @@
613 -> {614};
614 -> {615};
615 -> {616};
- 616 -> {617};
subgraph cluster_149 {
color=red
- 618 [label="Enter function incompleteCallAtMostOnce" style="filled" fillcolor=red];
+ 617 [label="Enter function incompleteCallAtMostOnce" style="filled" fillcolor=red];
subgraph cluster_150 {
color=blue
- 619 [label="Enter block"];
+ 618 [label="Enter block"];
subgraph cluster_151 {
color=blue
- 620 [label="Function call arguments enter"];
+ 619 [label="Function call arguments enter"];
subgraph cluster_152 {
color=blue
- 621 [label="Function call arguments enter"];
+ 620 [label="Function call arguments enter"];
subgraph cluster_153 {
color=blue
- 622 [label="Function call arguments enter"];
+ 621 [label="Function call arguments enter"];
subgraph cluster_154 {
color=blue
- 623 [label="Function call arguments enter"];
- 624 [label="Anonymous function capture"];
- 625 [label="Postponed enter to lambda"];
+ 622 [label="Function call arguments enter"];
+ 623 [label="Anonymous function capture"];
+ 624 [label="Postponed enter to lambda"];
subgraph cluster_155 {
color=blue
- 626 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 625 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_156 {
color=blue
- 627 [label="Enter block"];
- 628 [label="Access variable R|<local>/x|"];
- 629 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
+ 626 [label="Enter block"];
+ 627 [label="Access variable R|<local>/x|"];
+ 628 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
subgraph cluster_157 {
color=blue
- 630 [label="Function call arguments enter"];
- 631 [label="Access variable R|<local>/y|"];
- 632 [label="Function call arguments exit"];
+ 629 [label="Function call arguments enter"];
+ 630 [label="Access variable R|<local>/y|"];
+ 631 [label="Function call arguments exit"];
}
- 633 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
- 634 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 632 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
+ 633 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
subgraph cluster_158 {
color=blue
- 635 [label="Function call arguments enter"];
- 636 [label="Access variable R|<local>/x|"];
- 637 [label="Smart cast: R|<local>/x|"];
- 638 [label="Function call arguments exit"];
+ 634 [label="Function call arguments enter"];
+ 635 [label="Access variable R|<local>/x|"];
+ 636 [label="Smart cast: R|<local>/x|"];
+ 637 [label="Function call arguments exit"];
}
- 639 [label="Function call enter: R|<local>/x|.R|kotlin/Int.inc|()"];
- 640 [label="Function call exit: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 638 [label="Function call enter: R|<local>/x|.R|kotlin/Int.inc|()"];
+ 639 [label="Function call exit: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
subgraph cluster_159 {
color=blue
- 641 [label="Function call arguments enter"];
- 642 [label="Function call arguments exit"];
+ 640 [label="Function call arguments enter"];
+ 641 [label="Function call arguments exit"];
}
- 643 [label="Function call enter: R|/materialize|<R|kotlin/Int|>()"];
- 644 [label="Function call exit: R|/materialize|<R|kotlin/Int|>()" style="filled" fillcolor=yellow];
- 645 [label="Exit block"];
+ 642 [label="Function call enter: R|/materialize|<R|kotlin/Int|>()"];
+ 643 [label="Function call exit: R|/materialize|<R|kotlin/Int|>()" style="filled" fillcolor=yellow];
+ 644 [label="Exit block"];
}
- 646 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 645 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 647 [label="Function call arguments exit"];
+ 646 [label="Function call arguments exit"];
}
- 648 [label="Function call enter: R|/atMostOnce|<R|kotlin/Int|>(...)"];
- 649 [label="Postponed exit from lambda"];
- 650 [label="Function call exit: R|/atMostOnce|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 651 [label="Function call arguments exit"];
+ 647 [label="Function call enter: R|/atMostOnce|<R|kotlin/Int|>(...)"];
+ 648 [label="Postponed exit from lambda"];
+ 649 [label="Function call exit: R|/atMostOnce|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 650 [label="Function call arguments exit"];
}
- 652 [label="Function call enter: R|/id|<R|kotlin/Int|>(...)"];
- 653 [label="Function call exit: R|/id|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 651 [label="Function call enter: R|/id|<R|kotlin/Int|>(...)"];
+ 652 [label="Function call exit: R|/id|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
subgraph cluster_160 {
color=blue
- 654 [label="Function call arguments enter"];
- 655 [label="Anonymous function capture"];
- 656 [label="Postponed enter to lambda"];
+ 653 [label="Function call arguments enter"];
+ 654 [label="Anonymous function capture"];
+ 655 [label="Postponed enter to lambda"];
subgraph cluster_161 {
color=blue
- 657 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 656 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_162 {
color=blue
- 658 [label="Enter block"];
- 659 [label="Access variable R|<local>/y|"];
- 660 [label="Type operator: (R|<local>/y| as R|kotlin/Int|)"];
+ 657 [label="Enter block"];
+ 658 [label="Access variable R|<local>/y|"];
+ 659 [label="Type operator: (R|<local>/y| as R|kotlin/Int|)"];
subgraph cluster_163 {
color=blue
- 661 [label="Function call arguments enter"];
- 662 [label="Access variable R|<local>/x|"];
- 663 [label="Function call arguments exit"];
+ 660 [label="Function call arguments enter"];
+ 661 [label="Access variable R|<local>/x|"];
+ 662 [label="Function call arguments exit"];
}
- 664 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
- 665 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 663 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
+ 664 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
subgraph cluster_164 {
color=blue
- 666 [label="Function call arguments enter"];
- 667 [label="Access variable R|<local>/y|"];
- 668 [label="Smart cast: R|<local>/y|"];
- 669 [label="Function call arguments exit"];
+ 665 [label="Function call arguments enter"];
+ 666 [label="Access variable R|<local>/y|"];
+ 667 [label="Smart cast: R|<local>/y|"];
+ 668 [label="Function call arguments exit"];
}
- 670 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
- 671 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
- 672 [label="Const: Int(1)"];
- 673 [label="Exit block"];
+ 669 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
+ 670 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 671 [label="Const: Int(1)"];
+ 672 [label="Exit block"];
}
- 674 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 673 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 675 [label="Function call arguments exit"];
+ 674 [label="Function call arguments exit"];
}
- 676 [label="Function call enter: R|/atMostOnce|<R|kotlin/Int|>(...)"];
- 677 [label="Postponed exit from lambda"];
- 678 [label="Function call exit: R|/atMostOnce|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 679 [label="Function call arguments exit"];
+ 675 [label="Function call enter: R|/atMostOnce|<R|kotlin/Int|>(...)"];
+ 676 [label="Postponed exit from lambda"];
+ 677 [label="Function call exit: R|/atMostOnce|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 678 [label="Function call arguments exit"];
}
- 680 [label="Function call enter: R|/select|<R|kotlin/Int|>(...)"];
- 681 [label="Function call exit: R|/select|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 682 [label="Function call arguments exit"];
+ 679 [label="Function call enter: R|/select|<R|kotlin/Int|>(...)"];
+ 680 [label="Function call exit: R|/select|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 681 [label="Function call arguments exit"];
}
- 683 [label="Function call enter: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()"];
- 684 [label="Function call exit: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 682 [label="Function call enter: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()"];
+ 683 [label="Function call exit: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
subgraph cluster_165 {
color=blue
- 685 [label="Function call arguments enter"];
- 686 [label="Access variable R|<local>/x|"];
- 687 [label="Function call arguments exit"];
+ 684 [label="Function call arguments enter"];
+ 685 [label="Access variable R|<local>/x|"];
+ 686 [label="Function call arguments exit"];
}
- 688 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
- 689 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 687 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
+ 688 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
subgraph cluster_166 {
color=blue
- 690 [label="Function call arguments enter"];
- 691 [label="Access variable R|<local>/y|"];
- 692 [label="Function call arguments exit"];
+ 689 [label="Function call arguments enter"];
+ 690 [label="Access variable R|<local>/y|"];
+ 691 [label="Function call arguments exit"];
}
- 693 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
- 694 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
- 695 [label="Exit block"];
+ 692 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
+ 693 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 694 [label="Exit block"];
}
- 696 [label="Exit function incompleteCallAtMostOnce" style="filled" fillcolor=red];
+ 695 [label="Exit function incompleteCallAtMostOnce" style="filled" fillcolor=red];
}
+ 617 -> {618};
618 -> {619};
619 -> {620};
620 -> {621};
621 -> {622};
622 -> {623};
623 -> {624};
- 624 -> {625};
- 624 -> {626} [color=green label="CapturedByValue"];
- 625 -> {626 647 649};
- 625 -> {626} [style=dashed];
+ 623 -> {625} [color=green label="CapturedByValue"];
+ 624 -> {625 646 648};
+ 624 -> {625} [style=dashed];
+ 625 -> {626};
626 -> {627};
627 -> {628};
628 -> {629};
@@ -1914,21 +1914,21 @@
642 -> {643};
643 -> {644};
644 -> {645};
- 645 -> {646};
- 646 -> {649};
- 647 -> {648};
- 648 -> {650};
- 649 -> {650} [color=green];
- 649 -> {681} [color=red label="Postponed"];
+ 645 -> {648};
+ 646 -> {647};
+ 647 -> {649};
+ 648 -> {649} [color=green];
+ 648 -> {680} [color=red label="Postponed"];
+ 649 -> {650};
650 -> {651};
651 -> {652};
652 -> {653};
653 -> {654};
654 -> {655};
- 655 -> {656};
- 655 -> {657} [color=green label="CapturedByValue"];
- 656 -> {657 675 677};
- 656 -> {657} [style=dashed];
+ 654 -> {656} [color=green label="CapturedByValue"];
+ 655 -> {656 674 676};
+ 655 -> {656} [style=dashed];
+ 656 -> {657};
657 -> {658};
658 -> {659};
659 -> {660};
@@ -1945,12 +1945,12 @@
670 -> {671};
671 -> {672};
672 -> {673};
- 673 -> {674};
- 674 -> {677};
- 675 -> {676};
- 676 -> {678};
- 677 -> {678} [color=green];
- 677 -> {681} [color=red label="Postponed"];
+ 673 -> {676};
+ 674 -> {675};
+ 675 -> {677};
+ 676 -> {677} [color=green];
+ 676 -> {680} [color=red label="Postponed"];
+ 677 -> {678};
678 -> {679};
679 -> {680};
680 -> {681};
@@ -1968,151 +1968,151 @@
692 -> {693};
693 -> {694};
694 -> {695};
- 695 -> {696};
subgraph cluster_167 {
color=red
- 697 [label="Enter function incompleteCallUnknown" style="filled" fillcolor=red];
+ 696 [label="Enter function incompleteCallUnknown" style="filled" fillcolor=red];
subgraph cluster_168 {
color=blue
- 698 [label="Enter block"];
+ 697 [label="Enter block"];
subgraph cluster_169 {
color=blue
- 699 [label="Function call arguments enter"];
+ 698 [label="Function call arguments enter"];
subgraph cluster_170 {
color=blue
- 700 [label="Function call arguments enter"];
+ 699 [label="Function call arguments enter"];
subgraph cluster_171 {
color=blue
- 701 [label="Function call arguments enter"];
+ 700 [label="Function call arguments enter"];
subgraph cluster_172 {
color=blue
- 702 [label="Function call arguments enter"];
- 703 [label="Anonymous function capture"];
- 704 [label="Postponed enter to lambda"];
+ 701 [label="Function call arguments enter"];
+ 702 [label="Anonymous function capture"];
+ 703 [label="Postponed enter to lambda"];
subgraph cluster_173 {
color=blue
- 705 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 704 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_174 {
color=blue
- 706 [label="Enter block"];
- 707 [label="Access variable R|<local>/x|"];
- 708 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
+ 705 [label="Enter block"];
+ 706 [label="Access variable R|<local>/x|"];
+ 707 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
subgraph cluster_175 {
color=blue
- 709 [label="Function call arguments enter"];
- 710 [label="Access variable R|<local>/y|"];
- 711 [label="Function call arguments exit"];
+ 708 [label="Function call arguments enter"];
+ 709 [label="Access variable R|<local>/y|"];
+ 710 [label="Function call arguments exit"];
}
- 712 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
- 713 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 711 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
+ 712 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
subgraph cluster_176 {
color=blue
- 714 [label="Function call arguments enter"];
- 715 [label="Access variable R|<local>/x|"];
- 716 [label="Smart cast: R|<local>/x|"];
- 717 [label="Function call arguments exit"];
+ 713 [label="Function call arguments enter"];
+ 714 [label="Access variable R|<local>/x|"];
+ 715 [label="Smart cast: R|<local>/x|"];
+ 716 [label="Function call arguments exit"];
}
- 718 [label="Function call enter: R|<local>/x|.R|kotlin/Int.inc|()"];
- 719 [label="Function call exit: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 717 [label="Function call enter: R|<local>/x|.R|kotlin/Int.inc|()"];
+ 718 [label="Function call exit: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
subgraph cluster_177 {
color=blue
- 720 [label="Function call arguments enter"];
- 721 [label="Function call arguments exit"];
+ 719 [label="Function call arguments enter"];
+ 720 [label="Function call arguments exit"];
}
- 722 [label="Function call enter: R|/materialize|<R|kotlin/Int|>()"];
- 723 [label="Function call exit: R|/materialize|<R|kotlin/Int|>()" style="filled" fillcolor=yellow];
- 724 [label="Exit block"];
+ 721 [label="Function call enter: R|/materialize|<R|kotlin/Int|>()"];
+ 722 [label="Function call exit: R|/materialize|<R|kotlin/Int|>()" style="filled" fillcolor=yellow];
+ 723 [label="Exit block"];
}
- 725 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 724 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 726 [label="Function call arguments exit"];
+ 725 [label="Function call arguments exit"];
}
- 727 [label="Function call enter: R|/unknown|<R|kotlin/Int|>(...)"];
- 728 [label="Postponed exit from lambda"];
- 729 [label="Function call exit: R|/unknown|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 730 [label="Function call arguments exit"];
+ 726 [label="Function call enter: R|/unknown|<R|kotlin/Int|>(...)"];
+ 727 [label="Postponed exit from lambda"];
+ 728 [label="Function call exit: R|/unknown|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 729 [label="Function call arguments exit"];
}
- 731 [label="Function call enter: R|/id|<R|kotlin/Int|>(...)"];
- 732 [label="Function call exit: R|/id|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 730 [label="Function call enter: R|/id|<R|kotlin/Int|>(...)"];
+ 731 [label="Function call exit: R|/id|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
subgraph cluster_178 {
color=blue
- 733 [label="Function call arguments enter"];
- 734 [label="Anonymous function capture"];
- 735 [label="Postponed enter to lambda"];
+ 732 [label="Function call arguments enter"];
+ 733 [label="Anonymous function capture"];
+ 734 [label="Postponed enter to lambda"];
subgraph cluster_179 {
color=blue
- 736 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 735 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_180 {
color=blue
- 737 [label="Enter block"];
- 738 [label="Access variable R|<local>/y|"];
- 739 [label="Type operator: (R|<local>/y| as R|kotlin/Int|)"];
+ 736 [label="Enter block"];
+ 737 [label="Access variable R|<local>/y|"];
+ 738 [label="Type operator: (R|<local>/y| as R|kotlin/Int|)"];
subgraph cluster_181 {
color=blue
- 740 [label="Function call arguments enter"];
- 741 [label="Access variable R|<local>/x|"];
- 742 [label="Function call arguments exit"];
+ 739 [label="Function call arguments enter"];
+ 740 [label="Access variable R|<local>/x|"];
+ 741 [label="Function call arguments exit"];
}
- 743 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
- 744 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 742 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
+ 743 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
subgraph cluster_182 {
color=blue
- 745 [label="Function call arguments enter"];
- 746 [label="Access variable R|<local>/y|"];
- 747 [label="Smart cast: R|<local>/y|"];
- 748 [label="Function call arguments exit"];
+ 744 [label="Function call arguments enter"];
+ 745 [label="Access variable R|<local>/y|"];
+ 746 [label="Smart cast: R|<local>/y|"];
+ 747 [label="Function call arguments exit"];
}
- 749 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
- 750 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
- 751 [label="Const: Int(1)"];
- 752 [label="Exit block"];
+ 748 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
+ 749 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 750 [label="Const: Int(1)"];
+ 751 [label="Exit block"];
}
- 753 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 752 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 754 [label="Function call arguments exit"];
+ 753 [label="Function call arguments exit"];
}
- 755 [label="Function call enter: R|/unknown|<R|kotlin/Int|>(...)"];
- 756 [label="Postponed exit from lambda"];
- 757 [label="Function call exit: R|/unknown|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 758 [label="Function call arguments exit"];
+ 754 [label="Function call enter: R|/unknown|<R|kotlin/Int|>(...)"];
+ 755 [label="Postponed exit from lambda"];
+ 756 [label="Function call exit: R|/unknown|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 757 [label="Function call arguments exit"];
}
- 759 [label="Function call enter: R|/select|<R|kotlin/Int|>(...)"];
- 760 [label="Function call exit: R|/select|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 761 [label="Function call arguments exit"];
+ 758 [label="Function call enter: R|/select|<R|kotlin/Int|>(...)"];
+ 759 [label="Function call exit: R|/select|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 760 [label="Function call arguments exit"];
}
- 762 [label="Function call enter: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()"];
- 763 [label="Function call exit: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 761 [label="Function call enter: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()"];
+ 762 [label="Function call exit: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
subgraph cluster_183 {
color=blue
- 764 [label="Function call arguments enter"];
- 765 [label="Access variable R|<local>/x|"];
- 766 [label="Function call arguments exit"];
+ 763 [label="Function call arguments enter"];
+ 764 [label="Access variable R|<local>/x|"];
+ 765 [label="Function call arguments exit"];
}
- 767 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
- 768 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 766 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
+ 767 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
subgraph cluster_184 {
color=blue
- 769 [label="Function call arguments enter"];
- 770 [label="Access variable R|<local>/y|"];
- 771 [label="Function call arguments exit"];
+ 768 [label="Function call arguments enter"];
+ 769 [label="Access variable R|<local>/y|"];
+ 770 [label="Function call arguments exit"];
}
- 772 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
- 773 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
- 774 [label="Exit block"];
+ 771 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
+ 772 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 773 [label="Exit block"];
}
- 775 [label="Exit function incompleteCallUnknown" style="filled" fillcolor=red];
+ 774 [label="Exit function incompleteCallUnknown" style="filled" fillcolor=red];
}
+ 696 -> {697};
697 -> {698};
698 -> {699};
699 -> {700};
700 -> {701};
701 -> {702};
702 -> {703};
- 703 -> {704};
- 703 -> {705} [color=green label="CapturedByValue"];
- 704 -> {705 726 728};
- 704 -> {705} [style=dashed];
+ 702 -> {704} [color=green label="CapturedByValue"];
+ 703 -> {704 725 727};
+ 703 -> {704} [style=dashed];
+ 704 -> {705};
705 -> {706};
706 -> {707};
707 -> {708};
@@ -2132,22 +2132,22 @@
721 -> {722};
722 -> {723};
723 -> {724};
- 724 -> {725};
- 725 -> {728};
- 726 -> {727};
- 727 -> {729};
- 728 -> {704} [color=green style=dashed];
- 728 -> {729} [color=green];
- 728 -> {760} [color=red label="Postponed"];
+ 724 -> {727};
+ 725 -> {726};
+ 726 -> {728};
+ 727 -> {703} [color=green style=dashed];
+ 727 -> {728} [color=green];
+ 727 -> {759} [color=red label="Postponed"];
+ 728 -> {729};
729 -> {730};
730 -> {731};
731 -> {732};
732 -> {733};
733 -> {734};
- 734 -> {735};
- 734 -> {736} [color=green label="CapturedByValue"];
- 735 -> {736 754 756};
- 735 -> {736} [style=dashed];
+ 733 -> {735} [color=green label="CapturedByValue"];
+ 734 -> {735 753 755};
+ 734 -> {735} [style=dashed];
+ 735 -> {736};
736 -> {737};
737 -> {738};
738 -> {739};
@@ -2164,13 +2164,13 @@
749 -> {750};
750 -> {751};
751 -> {752};
- 752 -> {753};
- 753 -> {756};
- 754 -> {755};
- 755 -> {757};
- 756 -> {735} [color=green style=dashed];
- 756 -> {757} [color=green];
- 756 -> {760} [color=red label="Postponed"];
+ 752 -> {755};
+ 753 -> {754};
+ 754 -> {756};
+ 755 -> {734} [color=green style=dashed];
+ 755 -> {756} [color=green];
+ 755 -> {759} [color=red label="Postponed"];
+ 756 -> {757};
757 -> {758};
758 -> {759};
759 -> {760};
@@ -2188,151 +2188,151 @@
771 -> {772};
772 -> {773};
773 -> {774};
- 774 -> {775};
subgraph cluster_185 {
color=red
- 776 [label="Enter function incompleteCallNoContract" style="filled" fillcolor=red];
+ 775 [label="Enter function incompleteCallNoContract" style="filled" fillcolor=red];
subgraph cluster_186 {
color=blue
- 777 [label="Enter block"];
+ 776 [label="Enter block"];
subgraph cluster_187 {
color=blue
- 778 [label="Function call arguments enter"];
+ 777 [label="Function call arguments enter"];
subgraph cluster_188 {
color=blue
- 779 [label="Function call arguments enter"];
+ 778 [label="Function call arguments enter"];
subgraph cluster_189 {
color=blue
- 780 [label="Function call arguments enter"];
+ 779 [label="Function call arguments enter"];
subgraph cluster_190 {
color=blue
- 781 [label="Function call arguments enter"];
- 782 [label="Anonymous function capture"];
- 783 [label="Postponed enter to lambda"];
+ 780 [label="Function call arguments enter"];
+ 781 [label="Anonymous function capture"];
+ 782 [label="Postponed enter to lambda"];
subgraph cluster_191 {
color=blue
- 784 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 783 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_192 {
color=blue
- 785 [label="Enter block"];
- 786 [label="Access variable R|<local>/x|"];
- 787 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
+ 784 [label="Enter block"];
+ 785 [label="Access variable R|<local>/x|"];
+ 786 [label="Type operator: (R|<local>/x| as R|kotlin/Int|)"];
subgraph cluster_193 {
color=blue
- 788 [label="Function call arguments enter"];
- 789 [label="Access variable R|<local>/y|"];
- 790 [label="Function call arguments exit"];
+ 787 [label="Function call arguments enter"];
+ 788 [label="Access variable R|<local>/y|"];
+ 789 [label="Function call arguments exit"];
}
- 791 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
- 792 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 790 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
+ 791 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
subgraph cluster_194 {
color=blue
- 793 [label="Function call arguments enter"];
- 794 [label="Access variable R|<local>/x|"];
- 795 [label="Smart cast: R|<local>/x|"];
- 796 [label="Function call arguments exit"];
+ 792 [label="Function call arguments enter"];
+ 793 [label="Access variable R|<local>/x|"];
+ 794 [label="Smart cast: R|<local>/x|"];
+ 795 [label="Function call arguments exit"];
}
- 797 [label="Function call enter: R|<local>/x|.R|kotlin/Int.inc|()"];
- 798 [label="Function call exit: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 796 [label="Function call enter: R|<local>/x|.R|kotlin/Int.inc|()"];
+ 797 [label="Function call exit: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
subgraph cluster_195 {
color=blue
- 799 [label="Function call arguments enter"];
- 800 [label="Function call arguments exit"];
+ 798 [label="Function call arguments enter"];
+ 799 [label="Function call arguments exit"];
}
- 801 [label="Function call enter: R|/materialize|<R|kotlin/Int|>()"];
- 802 [label="Function call exit: R|/materialize|<R|kotlin/Int|>()" style="filled" fillcolor=yellow];
- 803 [label="Exit block"];
+ 800 [label="Function call enter: R|/materialize|<R|kotlin/Int|>()"];
+ 801 [label="Function call exit: R|/materialize|<R|kotlin/Int|>()" style="filled" fillcolor=yellow];
+ 802 [label="Exit block"];
}
- 804 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 803 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 805 [label="Function call arguments exit"];
+ 804 [label="Function call arguments exit"];
}
- 806 [label="Function call enter: R|/noContract|<R|kotlin/Int|>(...)"];
- 807 [label="Postponed exit from lambda"];
- 808 [label="Function call exit: R|/noContract|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 809 [label="Function call arguments exit"];
+ 805 [label="Function call enter: R|/noContract|<R|kotlin/Int|>(...)"];
+ 806 [label="Postponed exit from lambda"];
+ 807 [label="Function call exit: R|/noContract|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 808 [label="Function call arguments exit"];
}
- 810 [label="Function call enter: R|/id|<R|kotlin/Int|>(...)"];
- 811 [label="Function call exit: R|/id|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 809 [label="Function call enter: R|/id|<R|kotlin/Int|>(...)"];
+ 810 [label="Function call exit: R|/id|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
subgraph cluster_196 {
color=blue
- 812 [label="Function call arguments enter"];
- 813 [label="Anonymous function capture"];
- 814 [label="Postponed enter to lambda"];
+ 811 [label="Function call arguments enter"];
+ 812 [label="Anonymous function capture"];
+ 813 [label="Postponed enter to lambda"];
subgraph cluster_197 {
color=blue
- 815 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 814 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_198 {
color=blue
- 816 [label="Enter block"];
- 817 [label="Access variable R|<local>/y|"];
- 818 [label="Type operator: (R|<local>/y| as R|kotlin/Int|)"];
+ 815 [label="Enter block"];
+ 816 [label="Access variable R|<local>/y|"];
+ 817 [label="Type operator: (R|<local>/y| as R|kotlin/Int|)"];
subgraph cluster_199 {
color=blue
- 819 [label="Function call arguments enter"];
- 820 [label="Access variable R|<local>/x|"];
- 821 [label="Function call arguments exit"];
+ 818 [label="Function call arguments enter"];
+ 819 [label="Access variable R|<local>/x|"];
+ 820 [label="Function call arguments exit"];
}
- 822 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
- 823 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 821 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
+ 822 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
subgraph cluster_200 {
color=blue
- 824 [label="Function call arguments enter"];
- 825 [label="Access variable R|<local>/y|"];
- 826 [label="Smart cast: R|<local>/y|"];
- 827 [label="Function call arguments exit"];
+ 823 [label="Function call arguments enter"];
+ 824 [label="Access variable R|<local>/y|"];
+ 825 [label="Smart cast: R|<local>/y|"];
+ 826 [label="Function call arguments exit"];
}
- 828 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
- 829 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
- 830 [label="Const: Int(1)"];
- 831 [label="Exit block"];
+ 827 [label="Function call enter: R|<local>/y|.R|kotlin/Int.inc|()"];
+ 828 [label="Function call exit: R|<local>/y|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 829 [label="Const: Int(1)"];
+ 830 [label="Exit block"];
}
- 832 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 831 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 833 [label="Function call arguments exit"];
+ 832 [label="Function call arguments exit"];
}
- 834 [label="Function call enter: R|/noContract|<R|kotlin/Int|>(...)"];
- 835 [label="Postponed exit from lambda"];
- 836 [label="Function call exit: R|/noContract|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 837 [label="Function call arguments exit"];
+ 833 [label="Function call enter: R|/noContract|<R|kotlin/Int|>(...)"];
+ 834 [label="Postponed exit from lambda"];
+ 835 [label="Function call exit: R|/noContract|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 836 [label="Function call arguments exit"];
}
- 838 [label="Function call enter: R|/select|<R|kotlin/Int|>(...)"];
- 839 [label="Function call exit: R|/select|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 840 [label="Function call arguments exit"];
+ 837 [label="Function call enter: R|/select|<R|kotlin/Int|>(...)"];
+ 838 [label="Function call exit: R|/select|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 839 [label="Function call arguments exit"];
}
- 841 [label="Function call enter: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()"];
- 842 [label="Function call exit: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 840 [label="Function call enter: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()"];
+ 841 [label="Function call exit: R|/select|<R|kotlin/Int|>(...).R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
subgraph cluster_201 {
color=blue
- 843 [label="Function call arguments enter"];
- 844 [label="Access variable R|<local>/x|"];
- 845 [label="Function call arguments exit"];
+ 842 [label="Function call arguments enter"];
+ 843 [label="Access variable R|<local>/x|"];
+ 844 [label="Function call arguments exit"];
}
- 846 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
- 847 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 845 [label="Function call enter: R|<local>/x|.<Unresolved name: inc>#()"];
+ 846 [label="Function call exit: R|<local>/x|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
subgraph cluster_202 {
color=blue
- 848 [label="Function call arguments enter"];
- 849 [label="Access variable R|<local>/y|"];
- 850 [label="Function call arguments exit"];
+ 847 [label="Function call arguments enter"];
+ 848 [label="Access variable R|<local>/y|"];
+ 849 [label="Function call arguments exit"];
}
- 851 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
- 852 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
- 853 [label="Exit block"];
+ 850 [label="Function call enter: R|<local>/y|.<Unresolved name: inc>#()"];
+ 851 [label="Function call exit: R|<local>/y|.<Unresolved name: inc>#()" style="filled" fillcolor=yellow];
+ 852 [label="Exit block"];
}
- 854 [label="Exit function incompleteCallNoContract" style="filled" fillcolor=red];
+ 853 [label="Exit function incompleteCallNoContract" style="filled" fillcolor=red];
}
+ 775 -> {776};
776 -> {777};
777 -> {778};
778 -> {779};
779 -> {780};
780 -> {781};
781 -> {782};
- 782 -> {783};
- 782 -> {784} [color=green label="CapturedByValue"];
- 783 -> {784 805 807};
- 783 -> {784} [style=dashed];
+ 781 -> {783} [color=green label="CapturedByValue"];
+ 782 -> {783 804 806};
+ 782 -> {783} [style=dashed];
+ 783 -> {784};
784 -> {785};
785 -> {786};
786 -> {787};
@@ -2352,21 +2352,21 @@
800 -> {801};
801 -> {802};
802 -> {803};
- 803 -> {804};
- 804 -> {784} [color=green style=dashed];
- 805 -> {806};
- 806 -> {808};
- 807 -> {808} [color=green];
- 807 -> {839} [color=red label="Postponed"];
+ 803 -> {783} [color=green style=dashed];
+ 804 -> {805};
+ 805 -> {807};
+ 806 -> {807} [color=green];
+ 806 -> {838} [color=red label="Postponed"];
+ 807 -> {808};
808 -> {809};
809 -> {810};
810 -> {811};
811 -> {812};
812 -> {813};
- 813 -> {814};
- 813 -> {815} [color=green label="CapturedByValue"];
- 814 -> {815 833 835};
- 814 -> {815} [style=dashed];
+ 812 -> {814} [color=green label="CapturedByValue"];
+ 813 -> {814 832 834};
+ 813 -> {814} [style=dashed];
+ 814 -> {815};
815 -> {816};
816 -> {817};
817 -> {818};
@@ -2383,12 +2383,12 @@
828 -> {829};
829 -> {830};
830 -> {831};
- 831 -> {832};
- 832 -> {815} [color=green style=dashed];
- 833 -> {834};
- 834 -> {836};
- 835 -> {836} [color=green];
- 835 -> {839} [color=red label="Postponed"];
+ 831 -> {814} [color=green style=dashed];
+ 832 -> {833};
+ 833 -> {835};
+ 834 -> {835} [color=green];
+ 834 -> {838} [color=red label="Postponed"];
+ 835 -> {836};
836 -> {837};
837 -> {838};
838 -> {839};
@@ -2406,128 +2406,128 @@
850 -> {851};
851 -> {852};
852 -> {853};
- 853 -> {854};
subgraph cluster_203 {
color=red
- 855 [label="Enter function expectedType" style="filled" fillcolor=red];
+ 854 [label="Enter function expectedType" style="filled" fillcolor=red];
subgraph cluster_204 {
color=blue
- 856 [label="Enter block"];
+ 855 [label="Enter block"];
subgraph cluster_205 {
color=blue
- 857 [label="Function call arguments enter"];
+ 856 [label="Function call arguments enter"];
subgraph cluster_206 {
color=blue
- 858 [label="Function call arguments enter"];
- 859 [label="Anonymous function capture"];
- 860 [label="Postponed enter to lambda"];
+ 857 [label="Function call arguments enter"];
+ 858 [label="Anonymous function capture"];
+ 859 [label="Postponed enter to lambda"];
subgraph cluster_207 {
color=blue
- 861 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 860 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_208 {
color=blue
- 862 [label="Enter block"];
+ 861 [label="Enter block"];
subgraph cluster_209 {
color=blue
- 863 [label="Function call arguments enter"];
- 864 [label="Function call arguments exit"];
+ 862 [label="Function call arguments enter"];
+ 863 [label="Function call arguments exit"];
}
- 865 [label="Function call enter: R|/materialize|<R|kotlin/Int|>()"];
- 866 [label="Function call exit: R|/materialize|<R|kotlin/Int|>()" style="filled" fillcolor=yellow];
- 867 [label="Exit block"];
+ 864 [label="Function call enter: R|/materialize|<R|kotlin/Int|>()"];
+ 865 [label="Function call exit: R|/materialize|<R|kotlin/Int|>()" style="filled" fillcolor=yellow];
+ 866 [label="Exit block"];
}
- 868 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 867 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 869 [label="Function call arguments exit"];
+ 868 [label="Function call arguments exit"];
}
- 870 [label="Function call enter: R|kotlin/run|<R|kotlin/Int|>(...)"];
- 871 [label="Postponed exit from lambda"];
- 872 [label="Function call exit: R|kotlin/run|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 869 [label="Function call enter: R|kotlin/run|<R|kotlin/Int|>(...)"];
+ 870 [label="Postponed exit from lambda"];
+ 871 [label="Function call exit: R|kotlin/run|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
subgraph cluster_210 {
color=blue
- 873 [label="Function call arguments enter"];
- 874 [label="Anonymous function capture"];
- 875 [label="Postponed enter to lambda"];
+ 872 [label="Function call arguments enter"];
+ 873 [label="Anonymous function capture"];
+ 874 [label="Postponed enter to lambda"];
subgraph cluster_211 {
color=blue
- 876 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 875 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_212 {
color=blue
- 877 [label="Enter block"];
+ 876 [label="Enter block"];
subgraph cluster_213 {
color=blue
- 878 [label="Function call arguments enter"];
- 879 [label="Function call arguments exit"];
+ 877 [label="Function call arguments enter"];
+ 878 [label="Function call arguments exit"];
}
- 880 [label="Function call enter: R|/materialize|<R|kotlin/Int|>()"];
- 881 [label="Function call exit: R|/materialize|<R|kotlin/Int|>()" style="filled" fillcolor=yellow];
- 882 [label="Exit block"];
+ 879 [label="Function call enter: R|/materialize|<R|kotlin/Int|>()"];
+ 880 [label="Function call exit: R|/materialize|<R|kotlin/Int|>()" style="filled" fillcolor=yellow];
+ 881 [label="Exit block"];
}
- 883 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 882 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 884 [label="Function call arguments exit"];
+ 883 [label="Function call arguments exit"];
}
- 885 [label="Function call enter: R|kotlin/run|<R|kotlin/Int|>(...)"];
- 886 [label="Postponed exit from lambda"];
- 887 [label="Function call exit: R|kotlin/run|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 888 [label="Function call arguments exit"];
+ 884 [label="Function call enter: R|kotlin/run|<R|kotlin/Int|>(...)"];
+ 885 [label="Postponed exit from lambda"];
+ 886 [label="Function call exit: R|kotlin/run|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 887 [label="Function call arguments exit"];
}
- 889 [label="Function call enter: R|/select|<R|kotlin/Int|>(...)"];
- 890 [label="Function call exit: R|/select|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 891 [label="Variable declaration: lval x: R|kotlin/Int|"];
+ 888 [label="Function call enter: R|/select|<R|kotlin/Int|>(...)"];
+ 889 [label="Function call exit: R|/select|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 890 [label="Variable declaration: lval x: R|kotlin/Int|"];
subgraph cluster_214 {
color=blue
- 892 [label="Function call arguments enter"];
- 893 [label="Access variable R|<local>/x|"];
- 894 [label="Function call arguments exit"];
+ 891 [label="Function call arguments enter"];
+ 892 [label="Access variable R|<local>/x|"];
+ 893 [label="Function call arguments exit"];
}
- 895 [label="Function call enter: R|<local>/x|.R|kotlin/Int.inc|()"];
- 896 [label="Function call exit: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
- 897 [label="Exit block"];
+ 894 [label="Function call enter: R|<local>/x|.R|kotlin/Int.inc|()"];
+ 895 [label="Function call exit: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 896 [label="Exit block"];
}
- 898 [label="Exit function expectedType" style="filled" fillcolor=red];
+ 897 [label="Exit function expectedType" style="filled" fillcolor=red];
}
+ 854 -> {855};
855 -> {856};
856 -> {857};
857 -> {858};
858 -> {859};
- 859 -> {860};
- 859 -> {861} [color=green style=dotted label="CapturedByValue"];
- 860 -> {861 869};
- 860 -> {871} [style=dotted];
- 860 -> {861} [style=dashed];
+ 858 -> {860} [color=green style=dotted label="CapturedByValue"];
+ 859 -> {860 868};
+ 859 -> {870} [style=dotted];
+ 859 -> {860} [style=dashed];
+ 860 -> {861};
861 -> {862};
862 -> {863};
863 -> {864};
864 -> {865};
865 -> {866};
866 -> {867};
- 867 -> {868};
- 868 -> {871};
- 869 -> {870};
- 870 -> {872};
- 871 -> {872} [color=green];
- 871 -> {890} [color=red label="Postponed"];
+ 867 -> {870};
+ 868 -> {869};
+ 869 -> {871};
+ 870 -> {871} [color=green];
+ 870 -> {889} [color=red label="Postponed"];
+ 871 -> {872};
872 -> {873};
873 -> {874};
- 874 -> {875};
- 874 -> {876} [color=green style=dotted label="CapturedByValue"];
- 875 -> {876 884};
- 875 -> {886} [style=dotted];
- 875 -> {876} [style=dashed];
+ 873 -> {875} [color=green style=dotted label="CapturedByValue"];
+ 874 -> {875 883};
+ 874 -> {885} [style=dotted];
+ 874 -> {875} [style=dashed];
+ 875 -> {876};
876 -> {877};
877 -> {878};
878 -> {879};
879 -> {880};
880 -> {881};
881 -> {882};
- 882 -> {883};
- 883 -> {886};
- 884 -> {885};
- 885 -> {887};
- 886 -> {887} [color=green];
- 886 -> {890} [color=red label="Postponed"];
+ 882 -> {885};
+ 883 -> {884};
+ 884 -> {886};
+ 885 -> {886} [color=green];
+ 885 -> {889} [color=red label="Postponed"];
+ 886 -> {887};
887 -> {888};
888 -> {889};
889 -> {890};
@@ -2538,116 +2538,116 @@
894 -> {895};
895 -> {896};
896 -> {897};
- 897 -> {898};
subgraph cluster_215 {
color=red
- 899 [label="Enter function expectedTypeNested" style="filled" fillcolor=red];
+ 898 [label="Enter function expectedTypeNested" style="filled" fillcolor=red];
subgraph cluster_216 {
color=blue
- 900 [label="Enter block"];
+ 899 [label="Enter block"];
subgraph cluster_217 {
color=blue
- 901 [label="Function call arguments enter"];
+ 900 [label="Function call arguments enter"];
subgraph cluster_218 {
color=blue
- 902 [label="Function call arguments enter"];
- 903 [label="Anonymous function capture"];
- 904 [label="Postponed enter to lambda"];
+ 901 [label="Function call arguments enter"];
+ 902 [label="Anonymous function capture"];
+ 903 [label="Postponed enter to lambda"];
subgraph cluster_219 {
color=blue
- 905 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 904 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_220 {
color=blue
- 906 [label="Enter block"];
+ 905 [label="Enter block"];
subgraph cluster_221 {
color=blue
- 907 [label="Function call arguments enter"];
- 908 [label="Anonymous function capture"];
- 909 [label="Postponed enter to lambda"];
+ 906 [label="Function call arguments enter"];
+ 907 [label="Anonymous function capture"];
+ 908 [label="Postponed enter to lambda"];
subgraph cluster_222 {
color=blue
- 910 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 909 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_223 {
color=blue
- 911 [label="Enter block"];
+ 910 [label="Enter block"];
subgraph cluster_224 {
color=blue
- 912 [label="Function call arguments enter"];
- 913 [label="Function call arguments exit"];
+ 911 [label="Function call arguments enter"];
+ 912 [label="Function call arguments exit"];
}
- 914 [label="Function call enter: R|/materialize|<R|kotlin/Int|>()"];
- 915 [label="Function call exit: R|/materialize|<R|kotlin/Int|>()" style="filled" fillcolor=yellow];
- 916 [label="Exit block"];
+ 913 [label="Function call enter: R|/materialize|<R|kotlin/Int|>()"];
+ 914 [label="Function call exit: R|/materialize|<R|kotlin/Int|>()" style="filled" fillcolor=yellow];
+ 915 [label="Exit block"];
}
- 917 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 916 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 918 [label="Function call arguments exit"];
+ 917 [label="Function call arguments exit"];
}
- 919 [label="Function call enter: R|kotlin/run|<R|kotlin/Int|>(...)"];
- 920 [label="Postponed exit from lambda"];
- 921 [label="Function call exit: R|kotlin/run|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 922 [label="Exit block"];
+ 918 [label="Function call enter: R|kotlin/run|<R|kotlin/Int|>(...)"];
+ 919 [label="Postponed exit from lambda"];
+ 920 [label="Function call exit: R|kotlin/run|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 921 [label="Exit block"];
}
- 923 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 922 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 924 [label="Function call arguments exit"];
+ 923 [label="Function call arguments exit"];
}
- 925 [label="Function call enter: R|/noContract|<R|kotlin/Int|>(...)"];
- 926 [label="Postponed exit from lambda"];
- 927 [label="Function call exit: R|/noContract|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 928 [label="Function call arguments exit"];
+ 924 [label="Function call enter: R|/noContract|<R|kotlin/Int|>(...)"];
+ 925 [label="Postponed exit from lambda"];
+ 926 [label="Function call exit: R|/noContract|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 927 [label="Function call arguments exit"];
}
- 929 [label="Function call enter: R|/id|<R|kotlin/Int|>(...)"];
- 930 [label="Function call exit: R|/id|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
- 931 [label="Variable declaration: lval x: R|kotlin/Int|"];
+ 928 [label="Function call enter: R|/id|<R|kotlin/Int|>(...)"];
+ 929 [label="Function call exit: R|/id|<R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
+ 930 [label="Variable declaration: lval x: R|kotlin/Int|"];
subgraph cluster_225 {
color=blue
- 932 [label="Function call arguments enter"];
- 933 [label="Access variable R|<local>/x|"];
- 934 [label="Function call arguments exit"];
+ 931 [label="Function call arguments enter"];
+ 932 [label="Access variable R|<local>/x|"];
+ 933 [label="Function call arguments exit"];
}
- 935 [label="Function call enter: R|<local>/x|.R|kotlin/Int.inc|()"];
- 936 [label="Function call exit: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
- 937 [label="Exit block"];
+ 934 [label="Function call enter: R|<local>/x|.R|kotlin/Int.inc|()"];
+ 935 [label="Function call exit: R|<local>/x|.R|kotlin/Int.inc|()" style="filled" fillcolor=yellow];
+ 936 [label="Exit block"];
}
- 938 [label="Exit function expectedTypeNested" style="filled" fillcolor=red];
+ 937 [label="Exit function expectedTypeNested" style="filled" fillcolor=red];
}
+ 898 -> {899};
899 -> {900};
900 -> {901};
901 -> {902};
902 -> {903};
- 903 -> {904};
- 903 -> {905} [color=green label="CapturedByValue"];
- 904 -> {905 924 926};
- 904 -> {905} [style=dashed];
+ 902 -> {904} [color=green label="CapturedByValue"];
+ 903 -> {904 923 925};
+ 903 -> {904} [style=dashed];
+ 904 -> {905};
905 -> {906};
906 -> {907};
907 -> {908};
- 908 -> {909};
- 908 -> {910} [color=green style=dotted label="CapturedByValue"];
- 909 -> {910 918};
- 909 -> {920} [style=dotted];
- 909 -> {910} [style=dashed];
+ 907 -> {909} [color=green style=dotted label="CapturedByValue"];
+ 908 -> {909 917};
+ 908 -> {919} [style=dotted];
+ 908 -> {909} [style=dashed];
+ 909 -> {910};
910 -> {911};
911 -> {912};
912 -> {913};
913 -> {914};
914 -> {915};
915 -> {916};
- 916 -> {917};
- 917 -> {920};
- 918 -> {919};
- 919 -> {921};
- 920 -> {921} [color=green];
- 920 -> {930} [color=red label="Postponed"];
+ 916 -> {919};
+ 917 -> {918};
+ 918 -> {920};
+ 919 -> {920} [color=green];
+ 919 -> {929} [color=red label="Postponed"];
+ 920 -> {921};
921 -> {922};
- 922 -> {923};
- 923 -> {905} [color=green style=dashed];
- 924 -> {925};
- 925 -> {927};
- 926 -> {927} [color=green];
- 926 -> {930} [color=red label="Postponed"];
+ 922 -> {904} [color=green style=dashed];
+ 923 -> {924};
+ 924 -> {926};
+ 925 -> {926} [color=green];
+ 925 -> {929} [color=red label="Postponed"];
+ 926 -> {927};
927 -> {928};
928 -> {929};
929 -> {930};
@@ -2658,6 +2658,5 @@
934 -> {935};
935 -> {936};
936 -> {937};
- 937 -> {938};
}
diff --git a/compiler/fir/analysis-tests/testData/resolve/cfg/inplaceLambdaInControlFlowExpressions.dot b/compiler/fir/analysis-tests/testData/resolve/cfg/inplaceLambdaInControlFlowExpressions.dot
index 8515433..d125d0a 100644
--- a/compiler/fir/analysis-tests/testData/resolve/cfg/inplaceLambdaInControlFlowExpressions.dot
+++ b/compiler/fir/analysis-tests/testData/resolve/cfg/inplaceLambdaInControlFlowExpressions.dot
@@ -18,222 +18,222 @@
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];
+ 6 [label="Jump: ^materialize Null(null)!!"];
+ 7 [label="Stub" style="filled" fillcolor=gray];
+ 8 [label="Exit block" style="filled" fillcolor=gray];
}
- 10 [label="Exit function materialize" style="filled" fillcolor=gray];
+ 9 [label="Exit function materialize" style="filled" fillcolor=red];
}
2 -> {3};
3 -> {4};
4 -> {5};
- 5 -> {6} [style=dotted];
+ 5 -> {6};
+ 6 -> {9};
6 -> {7} [style=dotted];
- 7 -> {8 10} [style=dotted];
+ 7 -> {8} [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];
+ 10 [label="Enter function test_1" style="filled" fillcolor=red];
subgraph cluster_4 {
color=blue
- 12 [label="Enter block"];
+ 11 [label="Enter block"];
subgraph cluster_5 {
color=blue
- 13 [label="Enter when"];
+ 12 [label="Enter when"];
subgraph cluster_6 {
color=blue
- 14 [label="Enter when branch condition "];
- 15 [label="Const: Boolean(true)"];
- 16 [label="Exit when branch condition"];
+ 13 [label="Enter when branch condition "];
+ 14 [label="Const: Boolean(true)"];
+ 15 [label="Exit when branch condition"];
}
subgraph cluster_7 {
color=blue
- 17 [label="Enter when branch condition else"];
- 18 [label="Exit when branch condition"];
+ 16 [label="Enter when branch condition else"];
+ 17 [label="Exit when branch condition"];
}
- 19 [label="Enter when branch result"];
+ 18 [label="Enter when branch result"];
subgraph cluster_8 {
color=blue
- 20 [label="Enter block"];
- 21 [label="Const: String()"];
- 22 [label="Exit block"];
+ 19 [label="Enter block"];
+ 20 [label="Const: String()"];
+ 21 [label="Exit block"];
}
- 23 [label="Exit when branch result"];
- 24 [label="Enter when branch result"];
+ 22 [label="Exit when branch result"];
+ 23 [label="Enter when branch result"];
subgraph cluster_9 {
color=blue
- 25 [label="Enter block"];
+ 24 [label="Enter block"];
subgraph cluster_10 {
color=blue
- 26 [label="Function call arguments enter"];
- 27 [label="Anonymous function capture"];
- 28 [label="Postponed enter to lambda"];
+ 25 [label="Function call arguments enter"];
+ 26 [label="Anonymous function capture"];
+ 27 [label="Postponed enter to lambda"];
subgraph cluster_11 {
color=blue
- 29 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 28 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_12 {
color=blue
- 30 [label="Enter block"];
+ 29 [label="Enter block"];
subgraph cluster_13 {
color=blue
- 31 [label="Function call arguments enter"];
- 32 [label="Function call arguments exit"];
+ 30 [label="Function call arguments enter"];
+ 31 [label="Function call arguments exit"];
}
- 33 [label="Function call enter: R|/materialize|<R|kotlin/String|>()"];
- 34 [label="Function call exit: R|/materialize|<R|kotlin/String|>()" style="filled" fillcolor=yellow];
- 35 [label="Exit block"];
+ 32 [label="Function call enter: R|/materialize|<R|kotlin/String|>()"];
+ 33 [label="Function call exit: R|/materialize|<R|kotlin/String|>()" style="filled" fillcolor=yellow];
+ 34 [label="Exit block"];
}
- 36 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 35 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 37 [label="Function call arguments exit"];
+ 36 [label="Function call arguments exit"];
}
- 38 [label="Function call enter: R|kotlin/run|<R|kotlin/String|>(...)"];
- 39 [label="Postponed exit from lambda"];
- 40 [label="Function call exit: R|kotlin/run|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
- 41 [label="Exit block"];
+ 37 [label="Function call enter: R|kotlin/run|<R|kotlin/String|>(...)"];
+ 38 [label="Postponed exit from lambda"];
+ 39 [label="Function call exit: R|kotlin/run|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
+ 40 [label="Exit block"];
}
- 42 [label="Exit when branch result"];
- 43 [label="Exit when"];
+ 41 [label="Exit when branch result"];
+ 42 [label="Exit when"];
}
- 44 [label="Variable declaration: lval x: R|kotlin/String|"];
- 45 [label="Exit block"];
+ 43 [label="Variable declaration: lval x: R|kotlin/String|"];
+ 44 [label="Exit block"];
}
- 46 [label="Exit function test_1" style="filled" fillcolor=red];
+ 45 [label="Exit function test_1" style="filled" fillcolor=red];
}
+ 10 -> {11};
11 -> {12};
12 -> {13};
13 -> {14};
14 -> {15};
- 15 -> {16};
- 16 -> {17 24};
+ 15 -> {16 23};
+ 16 -> {17};
17 -> {18};
18 -> {19};
19 -> {20};
20 -> {21};
21 -> {22};
- 22 -> {23};
- 23 -> {43};
+ 22 -> {42};
+ 23 -> {24};
24 -> {25};
25 -> {26};
26 -> {27};
- 27 -> {28};
- 27 -> {29} [color=green style=dotted label="CapturedByValue"];
- 28 -> {29 37};
- 28 -> {39} [style=dotted];
- 28 -> {29} [style=dashed];
+ 26 -> {28} [color=green style=dotted label="CapturedByValue"];
+ 27 -> {28 36};
+ 27 -> {38} [style=dotted];
+ 27 -> {28} [style=dashed];
+ 28 -> {29};
29 -> {30};
30 -> {31};
31 -> {32};
32 -> {33};
33 -> {34};
34 -> {35};
- 35 -> {36};
- 36 -> {39};
- 37 -> {38};
- 38 -> {40};
- 39 -> {40} [color=green];
- 39 -> {43} [color=red label="Postponed"];
+ 35 -> {38};
+ 36 -> {37};
+ 37 -> {39};
+ 38 -> {39} [color=green];
+ 38 -> {42} [color=red label="Postponed"];
+ 39 -> {40};
40 -> {41};
41 -> {42};
42 -> {43};
43 -> {44};
44 -> {45};
- 45 -> {46};
subgraph cluster_14 {
color=red
- 47 [label="Enter function test_2" style="filled" fillcolor=red];
+ 46 [label="Enter function test_2" style="filled" fillcolor=red];
subgraph cluster_15 {
color=blue
- 48 [label="Enter block"];
+ 47 [label="Enter block"];
subgraph cluster_16 {
color=blue
- 49 [label="Try expression enter"];
+ 48 [label="Try expression enter"];
subgraph cluster_17 {
color=blue
- 50 [label="Try main block enter"];
+ 49 [label="Try main block enter"];
subgraph cluster_18 {
color=blue
- 51 [label="Enter block"];
+ 50 [label="Enter block"];
subgraph cluster_19 {
color=blue
- 52 [label="Function call arguments enter"];
- 53 [label="Anonymous function capture"];
- 54 [label="Postponed enter to lambda"];
+ 51 [label="Function call arguments enter"];
+ 52 [label="Anonymous function capture"];
+ 53 [label="Postponed enter to lambda"];
subgraph cluster_20 {
color=blue
- 55 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 54 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_21 {
color=blue
- 56 [label="Enter block"];
+ 55 [label="Enter block"];
subgraph cluster_22 {
color=blue
- 57 [label="Function call arguments enter"];
- 58 [label="Function call arguments exit"];
+ 56 [label="Function call arguments enter"];
+ 57 [label="Function call arguments exit"];
}
- 59 [label="Function call enter: R|/materialize|<R|kotlin/String|>()"];
- 60 [label="Function call exit: R|/materialize|<R|kotlin/String|>()" style="filled" fillcolor=yellow];
- 61 [label="Exit block"];
+ 58 [label="Function call enter: R|/materialize|<R|kotlin/String|>()"];
+ 59 [label="Function call exit: R|/materialize|<R|kotlin/String|>()" style="filled" fillcolor=yellow];
+ 60 [label="Exit block"];
}
- 62 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 61 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 63 [label="Function call arguments exit"];
+ 62 [label="Function call arguments exit"];
}
- 64 [label="Function call enter: R|kotlin/run|<R|kotlin/String|>(...)"];
- 65 [label="Postponed exit from lambda"];
- 66 [label="Function call exit: R|kotlin/run|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
- 67 [label="Exit block"];
+ 63 [label="Function call enter: R|kotlin/run|<R|kotlin/String|>(...)"];
+ 64 [label="Postponed exit from lambda"];
+ 65 [label="Function call exit: R|kotlin/run|<R|kotlin/String|>(...)" style="filled" fillcolor=yellow];
+ 66 [label="Exit block"];
}
- 68 [label="Try main block exit"];
+ 67 [label="Try main block exit"];
}
subgraph cluster_23 {
color=blue
- 69 [label="Catch enter"];
- 70 [label="Variable declaration: e: R|{kotlin/Exception=} java/lang/Exception|"];
+ 68 [label="Catch enter"];
+ 69 [label="Variable declaration: e: R|{kotlin/Exception=} java/lang/Exception|"];
subgraph cluster_24 {
color=blue
- 71 [label="Enter block"];
- 72 [label="Const: String()"];
- 73 [label="Exit block"];
+ 70 [label="Enter block"];
+ 71 [label="Const: String()"];
+ 72 [label="Exit block"];
}
- 74 [label="Catch exit"];
+ 73 [label="Catch exit"];
}
- 75 [label="Try expression exit"];
+ 74 [label="Try expression exit"];
}
- 76 [label="Variable declaration: lval x: R|kotlin/String|"];
- 77 [label="Exit block"];
+ 75 [label="Variable declaration: lval x: R|kotlin/String|"];
+ 76 [label="Exit block"];
}
- 78 [label="Exit function test_2" style="filled" fillcolor=red];
+ 77 [label="Exit function test_2" style="filled" fillcolor=red];
}
+ 46 -> {47};
47 -> {48};
- 48 -> {49};
- 49 -> {50 69};
+ 48 -> {49 68};
+ 49 -> {50};
50 -> {51};
51 -> {52};
52 -> {53};
- 53 -> {54};
- 53 -> {55} [color=green style=dotted label="CapturedByValue"];
- 54 -> {55 63};
- 54 -> {65} [style=dotted];
- 54 -> {55} [style=dashed];
+ 52 -> {54} [color=green style=dotted label="CapturedByValue"];
+ 53 -> {54 62};
+ 53 -> {64} [style=dotted];
+ 53 -> {54} [style=dashed];
+ 54 -> {55};
55 -> {56};
56 -> {57};
57 -> {58};
58 -> {59};
59 -> {60};
60 -> {61};
- 61 -> {62};
- 62 -> {65};
- 63 -> {64};
- 64 -> {66};
- 65 -> {66} [color=green];
- 65 -> {75} [color=red label="Postponed"];
+ 61 -> {64};
+ 62 -> {63};
+ 63 -> {65};
+ 64 -> {65} [color=green];
+ 64 -> {74} [color=red label="Postponed"];
+ 65 -> {66};
66 -> {67};
- 67 -> {68};
- 68 -> {69 75};
+ 67 -> {68 74};
+ 68 -> {69};
69 -> {70};
70 -> {71};
71 -> {72};
@@ -242,70 +242,69 @@
74 -> {75};
75 -> {76};
76 -> {77};
- 77 -> {78};
subgraph cluster_25 {
color=red
- 79 [label="Enter function test_3" style="filled" fillcolor=red];
+ 78 [label="Enter function test_3" style="filled" fillcolor=red];
subgraph cluster_26 {
color=blue
- 80 [label="Enter block"];
+ 79 [label="Enter block"];
subgraph cluster_27 {
color=blue
- 81 [label="Function call arguments enter"];
- 82 [label="Anonymous function capture"];
- 83 [label="Postponed enter to lambda"];
+ 80 [label="Function call arguments enter"];
+ 81 [label="Anonymous function capture"];
+ 82 [label="Postponed enter to lambda"];
subgraph cluster_28 {
color=blue
- 84 [label="Enter function <anonymous>" style="filled" fillcolor=red];
+ 83 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_29 {
color=blue
- 85 [label="Enter block"];
+ 84 [label="Enter block"];
subgraph cluster_30 {
color=blue
- 86 [label="Function call arguments enter"];
- 87 [label="Function call arguments exit"];
+ 85 [label="Function call arguments enter"];
+ 86 [label="Function call arguments exit"];
}
- 88 [label="Function call enter: R|/materialize|<R|kotlin/String?|>()"];
- 89 [label="Function call exit: R|/materialize|<R|kotlin/String?|>()" style="filled" fillcolor=yellow];
- 90 [label="Exit block"];
+ 87 [label="Function call enter: R|/materialize|<R|kotlin/String?|>()"];
+ 88 [label="Function call exit: R|/materialize|<R|kotlin/String?|>()" style="filled" fillcolor=yellow];
+ 89 [label="Exit block"];
}
- 91 [label="Exit function <anonymous>" style="filled" fillcolor=red];
+ 90 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
- 92 [label="Function call arguments exit"];
+ 91 [label="Function call arguments exit"];
}
- 93 [label="Function call enter: R|kotlin/run|<R|kotlin/String?|>(...)"];
- 94 [label="Postponed exit from lambda"];
- 95 [label="Function call exit: R|kotlin/run|<R|kotlin/String?|>(...)" style="filled" fillcolor=yellow];
- 96 [label="Check not null: R|kotlin/run|<R|kotlin/String?|>(...)!!" style="filled" fillcolor=yellow];
- 97 [label="Variable declaration: lval x: R|kotlin/String|"];
- 98 [label="Exit block"];
+ 92 [label="Function call enter: R|kotlin/run|<R|kotlin/String?|>(...)"];
+ 93 [label="Postponed exit from lambda"];
+ 94 [label="Function call exit: R|kotlin/run|<R|kotlin/String?|>(...)" style="filled" fillcolor=yellow];
+ 95 [label="Check not null: R|kotlin/run|<R|kotlin/String?|>(...)!!" style="filled" fillcolor=yellow];
+ 96 [label="Variable declaration: lval x: R|kotlin/String|"];
+ 97 [label="Exit block"];
}
- 99 [label="Exit function test_3" style="filled" fillcolor=red];
+ 98 [label="Exit function test_3" style="filled" fillcolor=red];
}
+ 78 -> {79};
79 -> {80};
80 -> {81};
81 -> {82};
- 82 -> {83};
- 82 -> {84} [color=green style=dotted label="CapturedByValue"];
- 83 -> {84 92};
- 83 -> {94} [style=dotted];
- 83 -> {84} [style=dashed];
+ 81 -> {83} [color=green style=dotted label="CapturedByValue"];
+ 82 -> {83 91};
+ 82 -> {93} [style=dotted];
+ 82 -> {83} [style=dashed];
+ 83 -> {84};
84 -> {85};
85 -> {86};
86 -> {87};
87 -> {88};
88 -> {89};
89 -> {90};
- 90 -> {91};
- 91 -> {94};
- 92 -> {93};
- 93 -> {95};
- 94 -> {95} [color=green];
- 94 -> {96} [color=red label="Postponed"];
+ 90 -> {93};
+ 91 -> {92};
+ 92 -> {94};
+ 93 -> {94} [color=green];
+ 93 -> {95} [color=red label="Postponed"];
+ 94 -> {95};
95 -> {96};
96 -> {97};
97 -> {98};
- 98 -> {99};
}
diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/ConstraintSystemCompleter.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/ConstraintSystemCompleter.kt
index b23b1ab..0d52485 100644
--- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/ConstraintSystemCompleter.kt
+++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/ConstraintSystemCompleter.kt
@@ -21,6 +21,7 @@
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.ConeTypeVariable
import org.jetbrains.kotlin.resolve.calls.inference.components.*
+import org.jetbrains.kotlin.resolve.calls.inference.model.ExpectedTypeConstraintPosition
import org.jetbrains.kotlin.resolve.calls.inference.model.NewConstraintSystemImpl
import org.jetbrains.kotlin.resolve.calls.inference.model.NotEnoughInformationForTypeParameter
import org.jetbrains.kotlin.resolve.calls.inference.model.VariableWithConstraints
@@ -274,7 +275,15 @@
val variableWithConstraints = notFixedTypeVariables.getValue(variableForFixation.variable)
if (!variableForFixation.isReady) return false
- fixVariable(this, variableWithConstraints)
+ val isReadyToBeFixedUp =
+ variableForFixation.readiness == VariableFixationFinder.TypeVariableFixationReadiness.READY_FOR_FIXATION_UPPER
+ val hasExpectedTypeConstraint = variableWithConstraints.constraints
+ .any { it.position.initialConstraint.position is ExpectedTypeConstraintPosition<*> }
+ val direction = when {
+ isReadyToBeFixedUp && hasExpectedTypeConstraint -> TypeVariableDirectionCalculator.ResolveDirection.TO_SUPERTYPE
+ else -> TypeVariableDirectionCalculator.ResolveDirection.UNKNOWN
+ }
+ fixVariable(this, variableWithConstraints, direction)
return true
}
@@ -385,12 +394,10 @@
private fun fixVariable(
c: ConstraintSystemCompletionContext,
variableWithConstraints: VariableWithConstraints,
+ direction: TypeVariableDirectionCalculator.ResolveDirection = TypeVariableDirectionCalculator.ResolveDirection.UNKNOWN,
) {
val resultType = with(c) {
- inferenceComponents.resultTypeResolver.findResultType(
- variableWithConstraints,
- TypeVariableDirectionCalculator.ResolveDirection.UNKNOWN
- )
+ inferenceComponents.resultTypeResolver.findResultType(variableWithConstraints, direction)
}
val variable = variableWithConstraints.typeVariable
diff --git a/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/inference/components/VariableFixationFinder.kt b/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/inference/components/VariableFixationFinder.kt
index 112ba36..8829b84 100644
--- a/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/inference/components/VariableFixationFinder.kt
+++ b/compiler/resolution.common/src/org/jetbrains/kotlin/resolve/calls/inference/components/VariableFixationFinder.kt
@@ -70,6 +70,7 @@
class VariableForFixation(
val variable: TypeConstructorMarker,
private val hasProperConstraint: Boolean,
+ val readiness: TypeVariableFixationReadiness,
private val hasDependencyOnOuterTypeVariable: Boolean = false,
) {
val isReady: Boolean get() = hasProperConstraint && !hasDependencyOnOuterTypeVariable
@@ -125,7 +126,7 @@
get() = languageVersionSettings.supportsFeature(LanguageFeature.FixationEnhancementsIn22)
context(c: Context)
- private fun TypeConstructorMarker.getReadiness(
+ fun TypeConstructorMarker.getReadiness(
dependencyProvider: TypeVariableDependencyInformationProvider
): TypeVariableFixationReadiness {
return when {
@@ -223,13 +224,13 @@
val candidate = chooseBestTypeVariableCandidateWithLogging(allTypeVariables, dependencyProvider) ?: return null
- return when (candidate.getReadiness(dependencyProvider)) {
+ return when (val readiness = candidate.getReadiness(dependencyProvider)) {
TypeVariableFixationReadiness.FORBIDDEN -> null
- TypeVariableFixationReadiness.WITHOUT_PROPER_ARGUMENT_CONSTRAINT -> VariableForFixation(candidate, false)
+ TypeVariableFixationReadiness.WITHOUT_PROPER_ARGUMENT_CONSTRAINT -> VariableForFixation(candidate, false, readiness)
TypeVariableFixationReadiness.OUTER_TYPE_VARIABLE_DEPENDENCY ->
- VariableForFixation(candidate, hasProperConstraint = true, hasDependencyOnOuterTypeVariable = true)
+ VariableForFixation(candidate, hasProperConstraint = true, readiness, hasDependencyOnOuterTypeVariable = true)
- else -> VariableForFixation(candidate, true)
+ else -> VariableForFixation(candidate, true, readiness)
}
}
diff --git a/compiler/testData/diagnostics/tests/avoidInferringNothingUnnecessarily.fixation.txt b/compiler/testData/diagnostics/tests/avoidInferringNothingUnnecessarily.fixation.txt
index 90516d6..a3fa3a1 100644
--- a/compiler/testData/diagnostics/tests/avoidInferringNothingUnnecessarily.fixation.txt
+++ b/compiler/testData/diagnostics/tests/avoidInferringNothingUnnecessarily.fixation.txt
@@ -6,6 +6,6 @@
CHOSEN for fixation: TypeVariable(T) --- READY_FOR_FIXATION_UPPER
<: kotlin/Any
>: kotlin/Nothing
- = kotlin/Nothing (inferred during fixation)
- FIXED TO: kotlin/Nothing
+ = kotlin/Any (inferred during fixation)
+ FIXED TO: kotlin/Any
********************************
diff --git a/compiler/testData/diagnostics/tests/avoidInferringNothingUnnecessarily.latestLV.fixation.txt b/compiler/testData/diagnostics/tests/avoidInferringNothingUnnecessarily.latestLV.fixation.txt
new file mode 100644
index 0000000..a3fa3a1
--- /dev/null
+++ b/compiler/testData/diagnostics/tests/avoidInferringNothingUnnecessarily.latestLV.fixation.txt
@@ -0,0 +1,11 @@
+CHOSEN for fixation: TypeVariable(K) --- READY_FOR_FIXATION_LOWER
+ >: T & Any
+ = T
+ FIXED TO: T
+********************************
+CHOSEN for fixation: TypeVariable(T) --- READY_FOR_FIXATION_UPPER
+ <: kotlin/Any
+ >: kotlin/Nothing
+ = kotlin/Any (inferred during fixation)
+ FIXED TO: kotlin/Any
+********************************
diff --git a/compiler/testData/diagnostics/tests/when/whenAndLambdaWithExpectedType.fir.kt b/compiler/testData/diagnostics/tests/when/whenAndLambdaWithExpectedType.fir.kt
index 5dce799..0d750aa 100644
--- a/compiler/testData/diagnostics/tests/when/whenAndLambdaWithExpectedType.fir.kt
+++ b/compiler/testData/diagnostics/tests/when/whenAndLambdaWithExpectedType.fir.kt
@@ -29,9 +29,9 @@
}
val test4: (String) -> Boolean =
- when {
+ <!INITIALIZER_TYPE_MISMATCH!>when {
true -> <!ARGUMENT_TYPE_MISMATCH!>{ s1, <!CANNOT_INFER_VALUE_PARAMETER_TYPE!>s2<!> -> true }<!>
else -> null!!
- }
+ }<!>
/* GENERATED_FIR_TAGS: checkNotNullCall, functionalType, lambdaLiteral, propertyDeclaration, whenExpression */
diff --git a/compiler/testData/ir/irText/declarations/contextReceivers/contextualInlineCall.fir.ir.txt b/compiler/testData/ir/irText/declarations/contextReceivers/contextualInlineCall.fir.ir.txt
new file mode 100644
index 0000000..613a9b2
--- /dev/null
+++ b/compiler/testData/ir/irText/declarations/contextReceivers/contextualInlineCall.fir.ir.txt
@@ -0,0 +1,203 @@
+FILE fqName:<root> fileName:/contextualInlineCall.kt
+ CLASS CLASS name:A modality:FINAL visibility:public superTypes:[kotlin.Any]
+ thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.A
+ PROPERTY name:a visibility:public modality:FINAL [val]
+ FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Any? visibility:private [final]
+ EXPRESSION_BODY
+ GET_VAR 'a: kotlin.Any? declared in <root>.A.<init>' type=kotlin.Any? origin=INITIALIZE_PROPERTY_FROM_PARAMETER
+ FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:FINAL returnType:kotlin.Any?
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.A
+ correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
+ BLOCK_BODY
+ RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.Any? declared in <root>.A'
+ GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.Any? visibility:private [final]' type=kotlin.Any? origin=null
+ receiver: GET_VAR '<this>: <root>.A declared in <root>.A.<get-a>' type=<root>.A origin=null
+ CONSTRUCTOR visibility:public returnType:<root>.A [primary]
+ VALUE_PARAMETER kind:Regular name:a index:0 type:kotlin.Any?
+ BLOCK_BODY
+ DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
+ INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
+ FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override,operator]
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
+ VALUE_PARAMETER kind:Regular name:other index:1 type:kotlin.Any?
+ overridden:
+ public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
+ FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN returnType:kotlin.Int [fake_override]
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
+ overridden:
+ public open fun hashCode (): kotlin.Int declared in kotlin.Any
+ FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN returnType:kotlin.String [fake_override]
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
+ overridden:
+ public open fun toString (): kotlin.String declared in kotlin.Any
+ CLASS CLASS name:Context modality:FINAL visibility:public superTypes:[kotlin.Any]
+ thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.Context
+ CONSTRUCTOR visibility:public returnType:<root>.Context [primary]
+ BLOCK_BODY
+ DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
+ INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Context modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
+ FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override,operator]
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
+ VALUE_PARAMETER kind:Regular name:other index:1 type:kotlin.Any?
+ overridden:
+ public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
+ FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN returnType:kotlin.Int [fake_override]
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
+ overridden:
+ public open fun hashCode (): kotlin.Int declared in kotlin.Any
+ FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN returnType:kotlin.String [fake_override]
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
+ overridden:
+ public open fun toString (): kotlin.String declared in kotlin.Any
+ FUN name:c visibility:public modality:FINAL returnType:kotlin.Int
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.Context
+ BLOCK_BODY
+ RETURN type=kotlin.Nothing from='public final fun c (): kotlin.Int declared in <root>.Context'
+ CONST Int type=kotlin.Int value=1
+ FUN name:box visibility:public modality:FINAL returnType:kotlin.String
+ BLOCK_BODY
+ RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
+ CALL 'public final fun with <T, R> (receiver: T of kotlin.with, block: @[ExtensionFunctionType] kotlin.Function1<T of kotlin.with, R of kotlin.with>): R of kotlin.with declared in kotlin' type=kotlin.String origin=null
+ TYPE_ARG T: <root>.Context
+ TYPE_ARG R: kotlin.String
+ ARG receiver: CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Context' type=<root>.Context origin=null
+ ARG block: FUN_EXPR type=@[ExtensionFunctionType] kotlin.Function1<<root>.Context, kotlin.String> origin=LAMBDA
+ FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL returnType:kotlin.String
+ VALUE_PARAMETER kind:ExtensionReceiver name:$this$with index:0 type:<root>.Context
+ BLOCK_BODY
+ VAR name:result type:kotlin.Int [var]
+ CONST Int type=kotlin.Int value=0
+ SET_VAR 'var result: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Unit origin=PLUSEQ
+ CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
+ ARG <this>: GET_VAR 'var result: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=PLUSEQ
+ ARG other: CALL 'public final fun testInline ($context_receiver_0: <root>.Context): kotlin.Int declared in <root>' type=kotlin.Int origin=null
+ ARG $context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=IMPLICIT_ARGUMENT
+ SET_VAR 'var result: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Unit origin=PLUSEQ
+ CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
+ ARG <this>: GET_VAR 'var result: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=PLUSEQ
+ ARG other: CALL 'public final fun testInlineWithArg ($context_receiver_0: <root>.Context, i: kotlin.Int): kotlin.Int declared in <root>' type=kotlin.Int origin=null
+ ARG $context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=IMPLICIT_ARGUMENT
+ ARG i: CONST Int type=kotlin.Int value=1
+ SET_VAR 'var result: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Unit origin=PLUSEQ
+ CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
+ ARG <this>: GET_VAR 'var result: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=PLUSEQ
+ ARG other: CALL 'public final fun testInlineWithExtensionAndArg ($context_receiver_0: <root>.Context, <this>: kotlin.Int, i: kotlin.Int): kotlin.Int declared in <root>' type=kotlin.Int origin=null
+ ARG $context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=IMPLICIT_ARGUMENT
+ ARG <this>: CONST Int type=kotlin.Int value=1
+ ARG i: CONST Int type=kotlin.Int value=1
+ SET_VAR 'var result: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Unit origin=PLUSEQ
+ CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
+ ARG <this>: GET_VAR 'var result: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=PLUSEQ
+ ARG other: CALL 'public final fun testInlineWithExtensionAndMultipleArgs ($context_receiver_0: <root>.Context, <this>: kotlin.Int, i1: kotlin.Int, i2: kotlin.Int): kotlin.Int declared in <root>' type=kotlin.Int origin=null
+ ARG $context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=IMPLICIT_ARGUMENT
+ ARG <this>: CONST Int type=kotlin.Int value=1
+ ARG i1: CONST Int type=kotlin.Int value=1
+ ARG i2: CONST Int type=kotlin.Int value=2
+ CALL 'public final fun with <T, R> (receiver: T of kotlin.with, block: @[ExtensionFunctionType] kotlin.Function1<T of kotlin.with, R of kotlin.with>): R of kotlin.with declared in kotlin' type=kotlin.Unit origin=null
+ TYPE_ARG T: <root>.A
+ TYPE_ARG R: kotlin.Unit
+ ARG receiver: CONSTRUCTOR_CALL 'public constructor <init> (a: kotlin.Any?) declared in <root>.A' type=<root>.A origin=null
+ ARG a: CONST Int type=kotlin.Int value=1
+ ARG block: FUN_EXPR type=@[ExtensionFunctionType] kotlin.Function1<<root>.A, kotlin.Unit> origin=LAMBDA
+ FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL returnType:kotlin.Unit
+ VALUE_PARAMETER kind:ExtensionReceiver name:$this$with index:0 type:<root>.A
+ BLOCK_BODY
+ SET_VAR 'var result: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Unit origin=PLUSEQ
+ CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
+ ARG <this>: GET_VAR 'var result: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=PLUSEQ
+ ARG other: CALL 'public final fun testInlineWithExtensionAndMultipleContextsAndArgs ($context_receiver_0: <root>.Context, $context_receiver_1: <root>.A, <this>: kotlin.Int, i1: kotlin.Int, i2: kotlin.Int): kotlin.Int declared in <root>' type=kotlin.Int origin=null
+ ARG $context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=IMPLICIT_ARGUMENT
+ ARG $context_receiver_1: GET_VAR '$this$with: <root>.A declared in <root>.box.<anonymous>.<anonymous>' type=<root>.A origin=IMPLICIT_ARGUMENT
+ ARG <this>: CONST Int type=kotlin.Int value=1
+ ARG i1: CONST Int type=kotlin.Int value=1
+ ARG i2: CONST Int type=kotlin.Int value=2
+ SET_VAR 'var result: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Unit origin=PLUSEQ
+ CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
+ ARG <this>: GET_VAR 'var result: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=PLUSEQ
+ ARG other: CALL 'public final fun testInlineWithExtensionAndMultipleContextsAndArgs ($context_receiver_0: <root>.Context, $context_receiver_1: <root>.A, <this>: kotlin.Int, i1: kotlin.Int, i2: kotlin.Int): kotlin.Int declared in <root>' type=kotlin.Int origin=null
+ ARG $context_receiver_0: GET_VAR '$this$with: <root>.Context declared in <root>.box.<anonymous>' type=<root>.Context origin=IMPLICIT_ARGUMENT
+ ARG $context_receiver_1: GET_VAR '$this$with: <root>.A declared in <root>.box.<anonymous>.<anonymous>' type=<root>.A origin=IMPLICIT_ARGUMENT
+ ARG <this>: CONST Int type=kotlin.Int value=1
+ RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
+ WHEN type=kotlin.String origin=IF
+ BRANCH
+ if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
+ ARG arg0: GET_VAR 'var result: kotlin.Int declared in <root>.box.<anonymous>' type=kotlin.Int origin=null
+ ARG arg1: CONST Int type=kotlin.Int value=23
+ then: CONST String type=kotlin.String value="OK"
+ BRANCH
+ if: CONST Boolean type=kotlin.Boolean value=true
+ then: CONST String type=kotlin.String value="fail"
+ FUN name:testInline visibility:public modality:FINAL returnType:kotlin.Int [inline]
+ VALUE_PARAMETER kind:Context name:$context_receiver_0 index:0 type:<root>.Context
+ BLOCK_BODY
+ RETURN type=kotlin.Nothing from='public final fun testInline ($context_receiver_0: <root>.Context): kotlin.Int declared in <root>'
+ CALL 'public final fun c (): kotlin.Int declared in <root>.Context' type=kotlin.Int origin=null
+ ARG <this>: GET_VAR '$context_receiver_0: <root>.Context declared in <root>.testInline' type=<root>.Context origin=IMPLICIT_ARGUMENT
+ FUN name:testInlineWithArg visibility:public modality:FINAL returnType:kotlin.Int [inline]
+ VALUE_PARAMETER kind:Context name:$context_receiver_0 index:0 type:<root>.Context
+ VALUE_PARAMETER kind:Regular name:i index:1 type:kotlin.Int
+ BLOCK_BODY
+ RETURN type=kotlin.Nothing from='public final fun testInlineWithArg ($context_receiver_0: <root>.Context, i: kotlin.Int): kotlin.Int declared in <root>'
+ CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=PLUS
+ ARG <this>: GET_VAR 'i: kotlin.Int declared in <root>.testInlineWithArg' type=kotlin.Int origin=null
+ ARG other: CALL 'public final fun c (): kotlin.Int declared in <root>.Context' type=kotlin.Int origin=null
+ ARG <this>: GET_VAR '$context_receiver_0: <root>.Context declared in <root>.testInlineWithArg' type=<root>.Context origin=IMPLICIT_ARGUMENT
+ FUN name:testInlineWithExtensionAndArg visibility:public modality:FINAL returnType:kotlin.Int [inline]
+ VALUE_PARAMETER kind:Context name:$context_receiver_0 index:0 type:<root>.Context
+ VALUE_PARAMETER kind:ExtensionReceiver name:<this> index:1 type:kotlin.Int
+ VALUE_PARAMETER kind:Regular name:i index:2 type:kotlin.Int
+ BLOCK_BODY
+ RETURN type=kotlin.Nothing from='public final fun testInlineWithExtensionAndArg ($context_receiver_0: <root>.Context, <this>: kotlin.Int, i: kotlin.Int): kotlin.Int declared in <root>'
+ CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=PLUS
+ ARG <this>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=PLUS
+ ARG <this>: GET_VAR '<this>: kotlin.Int declared in <root>.testInlineWithExtensionAndArg' type=kotlin.Int origin=null
+ ARG other: GET_VAR 'i: kotlin.Int declared in <root>.testInlineWithExtensionAndArg' type=kotlin.Int origin=null
+ ARG other: CALL 'public final fun c (): kotlin.Int declared in <root>.Context' type=kotlin.Int origin=null
+ ARG <this>: GET_VAR '$context_receiver_0: <root>.Context declared in <root>.testInlineWithExtensionAndArg' type=<root>.Context origin=IMPLICIT_ARGUMENT
+ FUN name:testInlineWithExtensionAndMultipleArgs visibility:public modality:FINAL returnType:kotlin.Int [inline]
+ VALUE_PARAMETER kind:Context name:$context_receiver_0 index:0 type:<root>.Context
+ VALUE_PARAMETER kind:ExtensionReceiver name:<this> index:1 type:kotlin.Int
+ VALUE_PARAMETER kind:Regular name:i1 index:2 type:kotlin.Int
+ VALUE_PARAMETER kind:Regular name:i2 index:3 type:kotlin.Int
+ BLOCK_BODY
+ RETURN type=kotlin.Nothing from='public final fun testInlineWithExtensionAndMultipleArgs ($context_receiver_0: <root>.Context, <this>: kotlin.Int, i1: kotlin.Int, i2: kotlin.Int): kotlin.Int declared in <root>'
+ CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=PLUS
+ ARG <this>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=PLUS
+ ARG <this>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=PLUS
+ ARG <this>: GET_VAR '<this>: kotlin.Int declared in <root>.testInlineWithExtensionAndMultipleArgs' type=kotlin.Int origin=null
+ ARG other: GET_VAR 'i1: kotlin.Int declared in <root>.testInlineWithExtensionAndMultipleArgs' type=kotlin.Int origin=null
+ ARG other: GET_VAR 'i2: kotlin.Int declared in <root>.testInlineWithExtensionAndMultipleArgs' type=kotlin.Int origin=null
+ ARG other: CALL 'public final fun c (): kotlin.Int declared in <root>.Context' type=kotlin.Int origin=null
+ ARG <this>: GET_VAR '$context_receiver_0: <root>.Context declared in <root>.testInlineWithExtensionAndMultipleArgs' type=<root>.Context origin=IMPLICIT_ARGUMENT
+ FUN name:testInlineWithExtensionAndMultipleContextsAndArgs visibility:public modality:FINAL returnType:kotlin.Int [inline]
+ VALUE_PARAMETER kind:Context name:$context_receiver_0 index:0 type:<root>.Context
+ VALUE_PARAMETER kind:Context name:$context_receiver_1 index:1 type:<root>.A
+ VALUE_PARAMETER kind:ExtensionReceiver name:<this> index:2 type:kotlin.Int
+ VALUE_PARAMETER kind:Regular name:i1 index:3 type:kotlin.Int
+ EXPRESSION_BODY
+ CONST Int type=kotlin.Int value=1
+ VALUE_PARAMETER kind:Regular name:i2 index:4 type:kotlin.Int
+ EXPRESSION_BODY
+ CONST Int type=kotlin.Int value=2
+ BLOCK_BODY
+ RETURN type=kotlin.Nothing from='public final fun testInlineWithExtensionAndMultipleContextsAndArgs ($context_receiver_0: <root>.Context, $context_receiver_1: <root>.A, <this>: kotlin.Int, i1: kotlin.Int, i2: kotlin.Int): kotlin.Int declared in <root>'
+ CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=PLUS
+ ARG <this>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=PLUS
+ ARG <this>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=PLUS
+ ARG <this>: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=PLUS
+ ARG <this>: GET_VAR '<this>: kotlin.Int declared in <root>.testInlineWithExtensionAndMultipleContextsAndArgs' type=kotlin.Int origin=null
+ ARG other: GET_VAR 'i1: kotlin.Int declared in <root>.testInlineWithExtensionAndMultipleContextsAndArgs' type=kotlin.Int origin=null
+ ARG other: GET_VAR 'i2: kotlin.Int declared in <root>.testInlineWithExtensionAndMultipleContextsAndArgs' type=kotlin.Int origin=null
+ ARG other: CALL 'public final fun c (): kotlin.Int declared in <root>.Context' type=kotlin.Int origin=null
+ ARG <this>: GET_VAR '$context_receiver_0: <root>.Context declared in <root>.testInlineWithExtensionAndMultipleContextsAndArgs' type=<root>.Context origin=IMPLICIT_ARGUMENT
+ ARG other: WHEN type=kotlin.Int origin=IF
+ BRANCH
+ if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
+ ARG arg0: CALL 'public final fun <get-a> (): kotlin.Any? declared in <root>.A' type=kotlin.Any? origin=GET_PROPERTY
+ ARG <this>: GET_VAR '$context_receiver_1: <root>.A declared in <root>.testInlineWithExtensionAndMultipleContextsAndArgs' type=<root>.A origin=null
+ ARG arg1: CONST Null type=kotlin.Nothing? value=null
+ then: CONST Int type=kotlin.Int value=0
+ BRANCH
+ if: CONST Boolean type=kotlin.Boolean value=true
+ then: CONST Int type=kotlin.Int value=1
diff --git a/compiler/testData/ir/irText/declarations/contextReceivers/contextualInlineCall.fir.kt.txt b/compiler/testData/ir/irText/declarations/contextReceivers/contextualInlineCall.fir.kt.txt
new file mode 100644
index 0000000..c878e41
--- /dev/null
+++ b/compiler/testData/ir/irText/declarations/contextReceivers/contextualInlineCall.fir.kt.txt
@@ -0,0 +1,74 @@
+class A {
+ val a: Any?
+ field = a
+ get
+
+ constructor(a: Any?) /* primary */ {
+ super/*Any*/()
+ /* <init>() */
+
+ }
+
+}
+
+class Context {
+ constructor() /* primary */ {
+ super/*Any*/()
+ /* <init>() */
+
+ }
+
+ fun c(): Int {
+ return 1
+ }
+
+}
+
+fun box(): String {
+ return with<Context, String>(receiver = Context(), block = local fun Context.<anonymous>(): String {
+ var result: Int = 0
+ result = result.plus(other = testInline(/* $context_receiver_0 = $this$with */))
+ result = result.plus(other = testInlineWithArg(/* $context_receiver_0 = $this$with, */ i = 1))
+ result = result.plus(other = testInlineWithExtensionAndArg(/* $context_receiver_0 = $this$with, <this> = 1, */ i = 1))
+ result = result.plus(other = testInlineWithExtensionAndMultipleArgs(/* $context_receiver_0 = $this$with, <this> = 1, */ i1 = 1, i2 = 2))
+ with<A, Unit>(receiver = A(a = 1), block = local fun A.<anonymous>() {
+ result = result.plus(other = testInlineWithExtensionAndMultipleContextsAndArgs(/* $context_receiver_0 = $this$with, $context_receiver_1 = $this$with, <this> = 1, */ i1 = 1, i2 = 2))
+ result = result.plus(other = testInlineWithExtensionAndMultipleContextsAndArgs(/* $context_receiver_0 = $this$with, $context_receiver_1 = $this$with, <this> = 1 */))
+ }
+)
+ return when {
+ EQEQ(arg0 = result, arg1 = 23) -> "OK"
+ else -> "fail"
+ }
+ }
+)
+}
+
+context($context_receiver_0: Context)
+inline fun testInline(): Int {
+ return $context_receiver_0.c()
+}
+
+context($context_receiver_0: Context)
+inline fun testInlineWithArg(i: Int): Int {
+ return i.plus(other = $context_receiver_0.c())
+}
+
+context($context_receiver_0: Context)
+inline fun Int.testInlineWithExtensionAndArg(i: Int): Int {
+ return <this>.plus(other = i).plus(other = $context_receiver_0.c())
+}
+
+context($context_receiver_0: Context)
+inline fun Int.testInlineWithExtensionAndMultipleArgs(i1: Int, i2: Int): Int {
+ return <this>.plus(other = i1).plus(other = i2).plus(other = $context_receiver_0.c())
+}
+
+context($context_receiver_0: Context, $context_receiver_1: A)
+inline fun Int.testInlineWithExtensionAndMultipleContextsAndArgs(i1: Int = 1, i2: Int = 2): Int {
+ return <this>.plus(other = i1).plus(other = i2).plus(other = $context_receiver_0.c()).plus(other = when {
+ EQEQ(arg0 = $context_receiver_1.<get-a>(), arg1 = null) -> 0
+ else -> 1
+ })
+}
+
diff --git a/compiler/testData/ir/irText/declarations/contextReceivers/contextualInlineCall.kt b/compiler/testData/ir/irText/declarations/contextReceivers/contextualInlineCall.kt
index b3e2fb6..d2310fc 100644
--- a/compiler/testData/ir/irText/declarations/contextReceivers/contextualInlineCall.kt
+++ b/compiler/testData/ir/irText/declarations/contextReceivers/contextualInlineCall.kt
@@ -1,4 +1,3 @@
-// FIR_IDENTICAL
// LANGUAGE: +ContextReceivers
class Context {
diff --git a/compiler/testData/ir/irText/declarations/kt47527.fir.ir.txt b/compiler/testData/ir/irText/declarations/kt47527.fir.ir.txt
index 4fc9877..1125ef5 100644
--- a/compiler/testData/ir/irText/declarations/kt47527.fir.ir.txt
+++ b/compiler/testData/ir/irText/declarations/kt47527.fir.ir.txt
@@ -43,10 +43,10 @@
VALUE_PARAMETER kind:Regular name:value index:0 type:kotlin.Any?
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test_1 (value: kotlin.Any?): kotlin.String? declared in <root>'
- BLOCK type=kotlin.Nothing? origin=SAFE_CALL
+ BLOCK type=kotlin.String? origin=SAFE_CALL
VAR IR_TEMPORARY_VARIABLE name:tmp_2 type:kotlin.Any? [val]
GET_VAR 'value: kotlin.Any? declared in <root>.test_1' type=kotlin.Any? origin=null
- WHEN type=kotlin.Nothing? origin=null
+ WHEN type=kotlin.String? origin=null
BRANCH
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
ARG arg0: GET_VAR 'val tmp_2: kotlin.Any? declared in <root>.test_1' type=kotlin.Any? origin=null
@@ -54,13 +54,13 @@
then: CONST Null type=kotlin.Nothing? value=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
- then: CALL 'public final fun let <T, R> (<this>: T of kotlin.let, block: kotlin.Function1<T of kotlin.let, R of kotlin.let>): R of kotlin.let declared in kotlin' type=kotlin.Nothing origin=null
+ then: CALL 'public final fun let <T, R> (<this>: T of kotlin.let, block: kotlin.Function1<T of kotlin.let, R of kotlin.let>): R of kotlin.let declared in kotlin' type=kotlin.String? origin=null
TYPE_ARG T: kotlin.Any
- TYPE_ARG R: kotlin.Nothing
+ TYPE_ARG R: kotlin.String?
ARG <this>: TYPE_OP type=kotlin.Any origin=IMPLICIT_CAST typeOperand=kotlin.Any
GET_VAR 'val tmp_2: kotlin.Any? declared in <root>.test_1' type=kotlin.Any? origin=null
- ARG block: FUN_EXPR type=kotlin.Function1<kotlin.Any, kotlin.Nothing> origin=LAMBDA
- FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL returnType:kotlin.Nothing
+ ARG block: FUN_EXPR type=kotlin.Function1<kotlin.Any, kotlin.String?> origin=LAMBDA
+ FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL returnType:kotlin.String?
VALUE_PARAMETER kind:Regular name:it index:0 type:kotlin.Any
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test_1 (value: kotlin.Any?): kotlin.String? declared in <root>'
diff --git a/compiler/testData/ir/irText/declarations/kt47527.fir.kt.txt b/compiler/testData/ir/irText/declarations/kt47527.fir.kt.txt
index 57ff2f3..7a5864a 100644
--- a/compiler/testData/ir/irText/declarations/kt47527.fir.kt.txt
+++ b/compiler/testData/ir/irText/declarations/kt47527.fir.kt.txt
@@ -22,7 +22,7 @@
val tmp_2: Any? = value
when {
EQEQ(arg0 = tmp_2, arg1 = null) -> null
- else -> let<Any, Nothing>(/* <this> = tmp_2 /*as Any */, */ block = local fun <anonymous>(it: Any): Nothing {
+ else -> let<Any, String?>(/* <this> = tmp_2 /*as Any */, */ block = local fun <anonymous>(it: Any): String? {
return "O"
}
)
diff --git a/compiler/testData/ir/irText/expressions/floatingPointComparisons/eqeqRhsConditionPossiblyAffectingLhs.fir.ir.txt b/compiler/testData/ir/irText/expressions/floatingPointComparisons/eqeqRhsConditionPossiblyAffectingLhs.fir.ir.txt
new file mode 100644
index 0000000..a839dae
--- /dev/null
+++ b/compiler/testData/ir/irText/expressions/floatingPointComparisons/eqeqRhsConditionPossiblyAffectingLhs.fir.ir.txt
@@ -0,0 +1,18 @@
+FILE fqName:<root> fileName:/eqeqRhsConditionPossiblyAffectingLhs.kt
+ FUN name:test visibility:public modality:FINAL returnType:kotlin.Boolean
+ VALUE_PARAMETER kind:Regular name:x index:0 type:kotlin.Any
+ BLOCK_BODY
+ RETURN type=kotlin.Nothing from='public final fun test (x: kotlin.Any): kotlin.Boolean declared in <root>'
+ CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
+ ARG arg0: GET_VAR 'x: kotlin.Any declared in <root>.test' type=kotlin.Any origin=null
+ ARG arg1: WHEN type=kotlin.Any origin=IF
+ BRANCH
+ if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=kotlin.Double
+ GET_VAR 'x: kotlin.Any declared in <root>.test' type=kotlin.Any origin=null
+ then: CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Any origin=EXCLEXCL
+ TYPE_ARG T0: kotlin.Nothing
+ ARG arg0: CONST Null type=kotlin.Nothing? value=null
+ BRANCH
+ if: CONST Boolean type=kotlin.Boolean value=true
+ then: TYPE_OP type=kotlin.Double origin=IMPLICIT_CAST typeOperand=kotlin.Double
+ GET_VAR 'x: kotlin.Any declared in <root>.test' type=kotlin.Any origin=null
diff --git a/compiler/testData/ir/irText/expressions/floatingPointComparisons/eqeqRhsConditionPossiblyAffectingLhs.fir.kt.txt b/compiler/testData/ir/irText/expressions/floatingPointComparisons/eqeqRhsConditionPossiblyAffectingLhs.fir.kt.txt
new file mode 100644
index 0000000..50c1bd9
--- /dev/null
+++ b/compiler/testData/ir/irText/expressions/floatingPointComparisons/eqeqRhsConditionPossiblyAffectingLhs.fir.kt.txt
@@ -0,0 +1,6 @@
+fun test(x: Any): Boolean {
+ return EQEQ(arg0 = x, arg1 = when {
+ x !is Double -> CHECK_NOT_NULL<Nothing>(arg0 = null)
+ else -> x /*as Double */
+ })
+}
diff --git a/compiler/testData/ir/irText/expressions/floatingPointComparisons/eqeqRhsConditionPossiblyAffectingLhs.kt b/compiler/testData/ir/irText/expressions/floatingPointComparisons/eqeqRhsConditionPossiblyAffectingLhs.kt
index 238c533..ef47438 100644
--- a/compiler/testData/ir/irText/expressions/floatingPointComparisons/eqeqRhsConditionPossiblyAffectingLhs.kt
+++ b/compiler/testData/ir/irText/expressions/floatingPointComparisons/eqeqRhsConditionPossiblyAffectingLhs.kt
@@ -1,4 +1,2 @@
-// FIR_IDENTICAL
-
fun test(x: Any) =
x == (if (x !is Double) null!! else x)
\ No newline at end of file
diff --git a/compiler/testData/ir/irText/expressions/smartCastAside2.fir.ir.txt b/compiler/testData/ir/irText/expressions/smartCastAside2.fir.ir.txt
index c462597..9316691 100644
--- a/compiler/testData/ir/irText/expressions/smartCastAside2.fir.ir.txt
+++ b/compiler/testData/ir/irText/expressions/smartCastAside2.fir.ir.txt
@@ -51,7 +51,7 @@
TYPE_PARAMETER name:K index:0 variance: superTypes:[kotlin.Any?] reified:false
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun materialize <K> (): K of <root>.materialize declared in <root>'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={K of <root>.materialize & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:test_1 visibility:public modality:FINAL returnType:kotlin.Unit
diff --git a/compiler/testData/ir/irText/fakeOverrides/collections/list/substitutionListOverrideKJ.fir.ir.txt b/compiler/testData/ir/irText/fakeOverrides/collections/list/substitutionListOverrideKJ.fir.ir.txt
index ad1ab93..390f5da 100644
--- a/compiler/testData/ir/irText/fakeOverrides/collections/list/substitutionListOverrideKJ.fir.ir.txt
+++ b/compiler/testData/ir/irText/fakeOverrides/collections/list/substitutionListOverrideKJ.fir.ir.txt
@@ -545,7 +545,7 @@
public open fun remove (): @[FlexibleNullability] E of java.util.LinkedList? declared in java.util.LinkedList
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun remove (): T of <root>.C declared in <root>.C'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.C & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:removeAt visibility:public modality:OPEN returnType:T of <root>.C
@@ -555,7 +555,7 @@
public open fun removeAt (p0: kotlin.Int): @[EnhancedNullability] E of java.util.LinkedList declared in java.util.LinkedList
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun removeAt (index: kotlin.Int): T of <root>.C declared in <root>.C'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.C & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY FAKE_OVERRIDE name:modCount visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
@@ -844,7 +844,7 @@
public open fun remove (): @[FlexibleNullability] E of java.util.LinkedList? declared in java.util.LinkedList
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun remove (): T of <root>.D declared in <root>.D'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.D & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY FAKE_OVERRIDE name:modCount visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
diff --git a/compiler/testData/ir/irText/fakeOverrides/collections/list/substitutionListOverrideKJJ.fir.ir.txt b/compiler/testData/ir/irText/fakeOverrides/collections/list/substitutionListOverrideKJJ.fir.ir.txt
index 37c256f..5f4d6e3 100644
--- a/compiler/testData/ir/irText/fakeOverrides/collections/list/substitutionListOverrideKJJ.fir.ir.txt
+++ b/compiler/testData/ir/irText/fakeOverrides/collections/list/substitutionListOverrideKJJ.fir.ir.txt
@@ -379,7 +379,7 @@
public open fun removeAt (p0: kotlin.Int): @[EnhancedNullability] @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun removeAt (index: kotlin.Int): T of <root>.B declared in <root>.B'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.B & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY FAKE_OVERRIDE name:modCount visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
diff --git a/compiler/testData/ir/irText/fakeOverrides/collections/list/substitutionListOverrideKJK.fir.ir.txt b/compiler/testData/ir/irText/fakeOverrides/collections/list/substitutionListOverrideKJK.fir.ir.txt
index 7f0b57e..24797c4 100644
--- a/compiler/testData/ir/irText/fakeOverrides/collections/list/substitutionListOverrideKJK.fir.ir.txt
+++ b/compiler/testData/ir/irText/fakeOverrides/collections/list/substitutionListOverrideKJK.fir.ir.txt
@@ -390,7 +390,7 @@
public abstract fun removeAt (index: kotlin.Int): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun removeAt (index: kotlin.Int): T of <root>.B declared in <root>.B'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.B & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY FAKE_OVERRIDE name:modCount visibility:protected/*protected and package*/ modality:FINAL [fake_override,var]
diff --git a/compiler/testData/ir/irText/fakeOverrides/collections/map/intersectionWithGenericMapOverrideKJJ.fir.ir.txt b/compiler/testData/ir/irText/fakeOverrides/collections/map/intersectionWithGenericMapOverrideKJJ.fir.ir.txt
index 2042f1a..27ce862 100644
--- a/compiler/testData/ir/irText/fakeOverrides/collections/map/intersectionWithGenericMapOverrideKJJ.fir.ir.txt
+++ b/compiler/testData/ir/irText/fakeOverrides/collections/map/intersectionWithGenericMapOverrideKJJ.fir.ir.txt
@@ -407,7 +407,7 @@
public open fun put (p0: @[EnhancedNullability] K of java.util.HashMap, p1: @[EnhancedNullability] V of java.util.HashMap): @[EnhancedNullability] V of java.util.HashMap? declared in java.util.HashMap
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun put (key: T of <root>.B, value: T of <root>.B): T of <root>.B? declared in <root>.B'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.B & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:remove visibility:public modality:OPEN returnType:T of <root>.B
@@ -418,7 +418,7 @@
public open fun remove (p0: @[EnhancedNullability] K of java.util.HashMap): @[EnhancedNullability] V of java.util.HashMap? declared in java.util.HashMap
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun remove (key: T of <root>.B): T of <root>.B declared in <root>.B'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.B & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY FAKE_OVERRIDE name:entries visibility:public modality:OPEN [fake_override,val]
diff --git a/compiler/testData/ir/irText/fakeOverrides/collections/map/intersectionWithGenericMapOverrideKJK.fir.ir.txt b/compiler/testData/ir/irText/fakeOverrides/collections/map/intersectionWithGenericMapOverrideKJK.fir.ir.txt
index 23f96b8..75d75ff 100644
--- a/compiler/testData/ir/irText/fakeOverrides/collections/map/intersectionWithGenericMapOverrideKJK.fir.ir.txt
+++ b/compiler/testData/ir/irText/fakeOverrides/collections/map/intersectionWithGenericMapOverrideKJK.fir.ir.txt
@@ -376,7 +376,7 @@
public abstract fun put (key: @[FlexibleNullability] K of java.util.SortedMap?, value: @[FlexibleNullability] V of java.util.SortedMap?): V of java.util.SortedMap? declared in java.util.SortedMap
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun put (key: T of <root>.B, value: T of <root>.B): T of <root>.B declared in <root>.B'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.B & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:remove visibility:public modality:OPEN returnType:T of <root>.B
@@ -386,7 +386,7 @@
public abstract fun remove (key: @[FlexibleNullability] K of java.util.SortedMap?): V of java.util.SortedMap? declared in java.util.SortedMap
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun remove (key: T of <root>.B): T of <root>.B declared in <root>.B'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.B & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY FAKE_OVERRIDE name:entries visibility:public modality:ABSTRACT [fake_override,val]
diff --git a/compiler/testData/ir/irText/fakeOverrides/collections/map/substitutionMapOverrideKJJ.fir.ir.txt b/compiler/testData/ir/irText/fakeOverrides/collections/map/substitutionMapOverrideKJJ.fir.ir.txt
index 742994b..5952c0f 100644
--- a/compiler/testData/ir/irText/fakeOverrides/collections/map/substitutionMapOverrideKJJ.fir.ir.txt
+++ b/compiler/testData/ir/irText/fakeOverrides/collections/map/substitutionMapOverrideKJJ.fir.ir.txt
@@ -366,7 +366,7 @@
public abstract fun put (key: @[FlexibleNullability] T of <root>.Java1?, value: @[FlexibleNullability] T of <root>.Java1?): T of <root>.Java1? declared in <root>.Java1
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun put (key: T of <root>.B, value: T of <root>.B): T of <root>.B? declared in <root>.B'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.B & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:remove visibility:public modality:OPEN returnType:kotlin.Boolean
diff --git a/compiler/testData/ir/irText/fakeOverrides/collections/map/substitutionMapOverrideOnKJKJ.fir.ir.txt b/compiler/testData/ir/irText/fakeOverrides/collections/map/substitutionMapOverrideOnKJKJ.fir.ir.txt
index a592e54..e851636 100644
--- a/compiler/testData/ir/irText/fakeOverrides/collections/map/substitutionMapOverrideOnKJKJ.fir.ir.txt
+++ b/compiler/testData/ir/irText/fakeOverrides/collections/map/substitutionMapOverrideOnKJKJ.fir.ir.txt
@@ -357,7 +357,7 @@
public abstract fun get (key: @[FlexibleNullability] T of <root>.Java1?): T of <root>.Java1? declared in <root>.Java1
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun get (key: T of <root>.B?): T of <root>.B? declared in <root>.B'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.B & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:isEmpty visibility:public modality:OPEN returnType:kotlin.Boolean
diff --git a/compiler/testData/ir/irText/fakeOverrides/generics/basicGenericMethodsOverride.fir.ir.txt b/compiler/testData/ir/irText/fakeOverrides/generics/basicGenericMethodsOverride.fir.ir.txt
index 96063cc..c4499fe 100644
--- a/compiler/testData/ir/irText/fakeOverrides/generics/basicGenericMethodsOverride.fir.ir.txt
+++ b/compiler/testData/ir/irText/fakeOverrides/generics/basicGenericMethodsOverride.fir.ir.txt
@@ -55,7 +55,7 @@
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.B.bar? declared in <root>.B'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.B.bar & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN returnType:kotlin.Unit
diff --git a/compiler/testData/ir/irText/fakeOverrides/generics/genericMethodOverrideOnComplexHierarchy.fir.ir.txt b/compiler/testData/ir/irText/fakeOverrides/generics/genericMethodOverrideOnComplexHierarchy.fir.ir.txt
index dcbb06a..2d2665c 100644
--- a/compiler/testData/ir/irText/fakeOverrides/generics/genericMethodOverrideOnComplexHierarchy.fir.ir.txt
+++ b/compiler/testData/ir/irText/fakeOverrides/generics/genericMethodOverrideOnComplexHierarchy.fir.ir.txt
@@ -64,7 +64,7 @@
public abstract fun bar <T> (): T of <root>.Java2.bar declared in <root>.Java2
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.B.bar declared in <root>.B'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.B.bar & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN returnType:kotlin.Unit
@@ -153,7 +153,7 @@
public abstract fun bar <T> (): T of <root>.Java2.bar declared in <root>.Java2
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.D.bar declared in <root>.D'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.D.bar & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN returnType:kotlin.Unit
@@ -288,7 +288,7 @@
public abstract fun bar <T> (): T of <root>.Java2.bar declared in <root>.Java2
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.G.bar declared in <root>.G'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.G.bar & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java3; <root>.Java2]
diff --git a/compiler/testData/ir/irText/fakeOverrides/generics/genericMethodOverrideOnKJJ.fir.ir.txt b/compiler/testData/ir/irText/fakeOverrides/generics/genericMethodOverrideOnKJJ.fir.ir.txt
index 6f0f9ac..c3a3b53 100644
--- a/compiler/testData/ir/irText/fakeOverrides/generics/genericMethodOverrideOnKJJ.fir.ir.txt
+++ b/compiler/testData/ir/irText/fakeOverrides/generics/genericMethodOverrideOnKJJ.fir.ir.txt
@@ -55,7 +55,7 @@
public open fun bar <T> (): @[FlexibleNullability] T of <root>.A.bar? declared in <root>.A
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.B.bar declared in <root>.B'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.B.bar & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN returnType:kotlin.Unit
@@ -125,7 +125,7 @@
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.D.bar declared in <root>.D'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.D.bar & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN returnType:kotlin.Unit
diff --git a/compiler/testData/ir/irText/fakeOverrides/generics/genericMethodOverrideOnKJK.fir.ir.txt b/compiler/testData/ir/irText/fakeOverrides/generics/genericMethodOverrideOnKJK.fir.ir.txt
index 972dc28..a0c1607 100644
--- a/compiler/testData/ir/irText/fakeOverrides/generics/genericMethodOverrideOnKJK.fir.ir.txt
+++ b/compiler/testData/ir/irText/fakeOverrides/generics/genericMethodOverrideOnKJK.fir.ir.txt
@@ -55,7 +55,7 @@
public abstract fun bar <T> (): T of <root>.A.bar declared in <root>.A
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.B.bar declared in <root>.B'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.B.bar & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN returnType:kotlin.Unit
@@ -125,7 +125,7 @@
public open fun bar <T> (): @[EnhancedNullability] T of <root>.Java1.bar declared in <root>.Java1
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.D.bar declared in <root>.D'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.D.bar & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN returnType:kotlin.Unit
diff --git a/compiler/testData/ir/irText/fakeOverrides/generics/intersectionGenericMethodOverride.fir.ir.txt b/compiler/testData/ir/irText/fakeOverrides/generics/intersectionGenericMethodOverride.fir.ir.txt
index d11a698..dbea2f9 100644
--- a/compiler/testData/ir/irText/fakeOverrides/generics/intersectionGenericMethodOverride.fir.ir.txt
+++ b/compiler/testData/ir/irText/fakeOverrides/generics/intersectionGenericMethodOverride.fir.ir.txt
@@ -64,7 +64,7 @@
public abstract fun bar <T> (): @[FlexibleNullability] T of <root>.Java2.bar? declared in <root>.Java2
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.B.bar declared in <root>.B'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.B.bar & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN returnType:kotlin.Unit
@@ -140,7 +140,7 @@
public abstract fun bar <T> (): T of <root>.KotlinInterface.bar declared in <root>.KotlinInterface
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.D.bar declared in <root>.D'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.D.bar & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN returnType:kotlin.Unit
@@ -233,7 +233,7 @@
public abstract fun bar <T> (): T of <root>.KotlinInterface.bar declared in <root>.KotlinInterface
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.F.bar declared in <root>.F'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.F.bar & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
CLASS INTERFACE name:KotlinInterface modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
diff --git a/compiler/testData/ir/irText/fakeOverrides/java21/sequenceMapOverride.fir.ir.txt b/compiler/testData/ir/irText/fakeOverrides/java21/sequenceMapOverride.fir.ir.txt
index 185881b..261363d 100644
--- a/compiler/testData/ir/irText/fakeOverrides/java21/sequenceMapOverride.fir.ir.txt
+++ b/compiler/testData/ir/irText/fakeOverrides/java21/sequenceMapOverride.fir.ir.txt
@@ -397,7 +397,7 @@
public abstract fun reversed (): @[FlexibleNullability] java.util.SequencedMap<@[FlexibleNullability] kotlin.Any?, @[FlexibleNullability] kotlin.Any?>? declared in <root>.Java1
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.SequencedMap<kotlin.Any, kotlin.Any>? declared in <root>.B'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.SequencedMap<kotlin.Any, kotlin.Any> origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY FAKE_OVERRIDE name:entries visibility:public modality:ABSTRACT [fake_override,val]
diff --git a/compiler/testData/ir/irText/fakeOverrides/java21/sequenceSetIntersectionOverrideKJK.fir.ir.txt b/compiler/testData/ir/irText/fakeOverrides/java21/sequenceSetIntersectionOverrideKJK.fir.ir.txt
index a18c458..9ad83a0 100644
--- a/compiler/testData/ir/irText/fakeOverrides/java21/sequenceSetIntersectionOverrideKJK.fir.ir.txt
+++ b/compiler/testData/ir/irText/fakeOverrides/java21/sequenceSetIntersectionOverrideKJK.fir.ir.txt
@@ -758,7 +758,7 @@
public open fun reversed (): @[FlexibleNullability] java.util.SortedSet<@[FlexibleNullability] E of java.util.SortedSet?>? declared in java.util.SortedSet
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.SortedSet<kotlin.Int?>? declared in <root>.D'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.SortedSet<kotlin.Int?> origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY FAKE_OVERRIDE name:size visibility:public modality:ABSTRACT [fake_override,val]
diff --git a/compiler/testData/ir/irText/fakeOverrides/javastatic/intersectionWithGenericOnComplexHierarchy.fir.ir.txt b/compiler/testData/ir/irText/fakeOverrides/javastatic/intersectionWithGenericOnComplexHierarchy.fir.ir.txt
index b2a08a2..44d323a 100644
--- a/compiler/testData/ir/irText/fakeOverrides/javastatic/intersectionWithGenericOnComplexHierarchy.fir.ir.txt
+++ b/compiler/testData/ir/irText/fakeOverrides/javastatic/intersectionWithGenericOnComplexHierarchy.fir.ir.txt
@@ -418,7 +418,7 @@
VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.KotlinInterface
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.KotlinInterface.bar declared in <root>.KotlinInterface'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.KotlinInterface.bar & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN returnType:kotlin.Unit
diff --git a/compiler/testData/ir/irText/fakeOverrides/javastatic/intersectionWithGenericOverride.fir.ir.txt b/compiler/testData/ir/irText/fakeOverrides/javastatic/intersectionWithGenericOverride.fir.ir.txt
new file mode 100644
index 0000000..b49ef7e
--- /dev/null
+++ b/compiler/testData/ir/irText/fakeOverrides/javastatic/intersectionWithGenericOverride.fir.ir.txt
@@ -0,0 +1,238 @@
+FILE fqName:<root> fileName:/1.kt
+ CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]
+ thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.A
+ CONSTRUCTOR visibility:public returnType:<root>.A [primary]
+ BLOCK_BODY
+ DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
+ INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]' type=kotlin.Unit
+ FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN returnType:@[FlexibleNullability] T of <root>.A.bar? [fake_override]
+ TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
+ overridden:
+ public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
+ FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN returnType:T of <root>.A.bar [fake_override]
+ TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.KotlinInterface
+ overridden:
+ public open fun bar <T> (): T of <root>.KotlinInterface.bar declared in <root>.KotlinInterface
+ FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override,operator]
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
+ VALUE_PARAMETER kind:Regular name:other index:1 type:kotlin.Any?
+ overridden:
+ public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
+ public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInterface
+ FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN returnType:kotlin.Unit [fake_override]
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.KotlinInterface
+ VALUE_PARAMETER kind:Regular name:t index:1 type:kotlin.Number
+ overridden:
+ public open fun foo (t: kotlin.Number): kotlin.Unit declared in <root>.KotlinInterface
+ FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN returnType:kotlin.Unit [fake_override]
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.KotlinInterface
+ VALUE_PARAMETER kind:Regular name:t index:1 type:kotlin.Number
+ VALUE_PARAMETER kind:Regular name:t2 index:2 type:kotlin.Int
+ overridden:
+ public open fun foo (t: kotlin.Number, t2: kotlin.Int): kotlin.Unit declared in <root>.KotlinInterface
+ FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN returnType:kotlin.Unit [fake_override]
+ VALUE_PARAMETER kind:Regular name:t index:0 type:@[FlexibleNullability] kotlin.Number?
+ overridden:
+ public open fun foo (t: @[FlexibleNullability] kotlin.Number?): kotlin.Unit declared in <root>.Java1
+ FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN returnType:kotlin.Unit [fake_override]
+ VALUE_PARAMETER kind:Regular name:t index:0 type:@[FlexibleNullability] kotlin.Number?
+ VALUE_PARAMETER kind:Regular name:t2 index:1 type:@[FlexibleNullability] kotlin.Int?
+ overridden:
+ public open fun foo (t: @[FlexibleNullability] kotlin.Number?, t2: @[FlexibleNullability] kotlin.Int?): kotlin.Unit declared in <root>.Java1
+ FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN returnType:kotlin.Unit [fake_override]
+ TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.KotlinInterface
+ VALUE_PARAMETER kind:Regular name:t index:1 type:T of <root>.A.foo
+ overridden:
+ public open fun foo <T> (t: T of <root>.KotlinInterface.foo): kotlin.Unit declared in <root>.KotlinInterface
+ FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN returnType:kotlin.Unit [fake_override]
+ TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
+ VALUE_PARAMETER kind:Regular name:t index:0 type:@[FlexibleNullability] T of <root>.A.foo?
+ overridden:
+ public open fun foo <T> (t: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1
+ FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN returnType:kotlin.Int [fake_override]
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
+ overridden:
+ public open fun hashCode (): kotlin.Int declared in <root>.Java1
+ public open fun hashCode (): kotlin.Int declared in <root>.KotlinInterface
+ FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN returnType:kotlin.String [fake_override]
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
+ overridden:
+ public open fun toString (): kotlin.String declared in <root>.Java1
+ public open fun toString (): kotlin.String declared in <root>.KotlinInterface
+ FUN name:test1 visibility:public modality:FINAL returnType:kotlin.Unit
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.A
+ BLOCK_BODY
+ RETURN type=kotlin.Nothing from='public final fun test1 (): kotlin.Unit declared in <root>.A'
+ CALL 'public open fun foo (t: kotlin.Number): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
+ ARG <this>: GET_VAR '<this>: <root>.A declared in <root>.A.test1' type=<root>.A origin=IMPLICIT_ARGUMENT
+ ARG t: CONST Int type=kotlin.Int value=1
+ FUN name:test2 visibility:public modality:FINAL returnType:kotlin.Int
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.A
+ BLOCK_BODY
+ RETURN type=kotlin.Nothing from='public final fun test2 (): kotlin.Int declared in <root>.A'
+ CALL 'public open fun bar <T> (): T of <root>.A.bar declared in <root>.A' type=kotlin.Int origin=null
+ TYPE_ARG T: kotlin.Int
+ ARG <this>: GET_VAR '<this>: <root>.A declared in <root>.A.test2' type=<root>.A origin=IMPLICIT_ARGUMENT
+ FUN name:test3 visibility:public modality:FINAL returnType:kotlin.Unit
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.A
+ BLOCK_BODY
+ RETURN type=kotlin.Nothing from='public final fun test3 (): kotlin.Unit declared in <root>.A'
+ CALL 'public open fun foo <T> (t: T of <root>.A.foo): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
+ TYPE_ARG T: kotlin.String
+ ARG <this>: GET_VAR '<this>: <root>.A declared in <root>.A.test3' type=<root>.A origin=IMPLICIT_ARGUMENT
+ ARG t: CONST String type=kotlin.String value=""
+ FUN name:test4 visibility:public modality:FINAL returnType:kotlin.Unit
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.A
+ BLOCK_BODY
+ RETURN type=kotlin.Nothing from='public final fun test4 (): kotlin.Unit declared in <root>.A'
+ CALL 'public open fun foo (t: kotlin.Number): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
+ ARG <this>: GET_VAR '<this>: <root>.A declared in <root>.A.test4' type=<root>.A origin=IMPLICIT_ARGUMENT
+ ARG t: CONST Double type=kotlin.Double value=1.5
+ FUN name:test5 visibility:public modality:FINAL returnType:kotlin.Unit
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.A
+ BLOCK_BODY
+ RETURN type=kotlin.Nothing from='public final fun test5 (): kotlin.Unit declared in <root>.A'
+ CALL 'public open fun foo (t: kotlin.Number, t2: kotlin.Int): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
+ ARG <this>: GET_VAR '<this>: <root>.A declared in <root>.A.test5' type=<root>.A origin=IMPLICIT_ARGUMENT
+ ARG t: CONST Double type=kotlin.Double value=1.5
+ ARG t2: CONST Int type=kotlin.Int value=8
+ CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2]
+ thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.B
+ CONSTRUCTOR visibility:public returnType:<root>.B [primary]
+ BLOCK_BODY
+ DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
+ INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2]' type=kotlin.Unit
+ FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN returnType:@[FlexibleNullability] T of <root>.B.bar? [fake_override]
+ TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
+ overridden:
+ public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
+ FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override,operator]
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
+ VALUE_PARAMETER kind:Regular name:other index:1 type:kotlin.Any?
+ overridden:
+ public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
+ public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
+ FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN returnType:kotlin.Unit [fake_override]
+ VALUE_PARAMETER kind:Regular name:t index:0 type:@[FlexibleNullability] kotlin.Number?
+ overridden:
+ public open fun foo (t: @[FlexibleNullability] kotlin.Number?): kotlin.Unit declared in <root>.Java1
+ FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN returnType:kotlin.Unit [fake_override]
+ VALUE_PARAMETER kind:Regular name:t index:0 type:@[FlexibleNullability] kotlin.Number?
+ VALUE_PARAMETER kind:Regular name:t2 index:1 type:@[FlexibleNullability] kotlin.Int?
+ overridden:
+ public open fun foo (t: @[FlexibleNullability] kotlin.Number?, t2: @[FlexibleNullability] kotlin.Int?): kotlin.Unit declared in <root>.Java1
+ FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN returnType:kotlin.Unit [fake_override]
+ TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
+ VALUE_PARAMETER kind:Regular name:t index:0 type:@[FlexibleNullability] T of <root>.B.foo?
+ overridden:
+ public open fun foo <T> (t: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1
+ FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN returnType:kotlin.Int [fake_override]
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
+ overridden:
+ public open fun hashCode (): kotlin.Int declared in <root>.Java1
+ public open fun hashCode (): kotlin.Int declared in <root>.Java2
+ FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN returnType:kotlin.String [fake_override]
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
+ overridden:
+ public open fun toString (): kotlin.String declared in <root>.Java1
+ public open fun toString (): kotlin.String declared in <root>.Java2
+ FUN name:test1 visibility:public modality:FINAL returnType:kotlin.Unit
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.B
+ BLOCK_BODY
+ RETURN type=kotlin.Nothing from='public final fun test1 (): kotlin.Unit declared in <root>.B'
+ CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Number?): kotlin.Unit declared in <root>.Java1' type=kotlin.Unit origin=null
+ ARG t: CONST Int type=kotlin.Int value=1
+ FUN name:test2 visibility:public modality:FINAL returnType:kotlin.Int
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.B
+ BLOCK_BODY
+ RETURN type=kotlin.Nothing from='public final fun test2 (): kotlin.Int declared in <root>.B'
+ TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
+ CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1' type=@[FlexibleNullability] kotlin.Int? origin=null
+ TYPE_ARG T: @[FlexibleNullability] kotlin.Int?
+ FUN name:test3 visibility:public modality:FINAL returnType:kotlin.Unit
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.B
+ BLOCK_BODY
+ RETURN type=kotlin.Nothing from='public final fun test3 (): kotlin.Unit declared in <root>.B'
+ CALL 'public open fun foo <T> (t: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1' type=kotlin.Unit origin=null
+ TYPE_ARG T: @[FlexibleNullability] kotlin.String?
+ ARG t: CONST String type=kotlin.String value=""
+ FUN name:test4 visibility:public modality:FINAL returnType:kotlin.Unit
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.B
+ BLOCK_BODY
+ RETURN type=kotlin.Nothing from='public final fun test4 (): kotlin.Unit declared in <root>.B'
+ CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Number?): kotlin.Unit declared in <root>.Java1' type=kotlin.Unit origin=null
+ ARG t: CONST Double type=kotlin.Double value=1.5
+ FUN name:test5 visibility:public modality:FINAL returnType:kotlin.Unit
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.B
+ BLOCK_BODY
+ RETURN type=kotlin.Nothing from='public final fun test5 (): kotlin.Unit declared in <root>.B'
+ CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Number?, t2: @[FlexibleNullability] kotlin.Int?): kotlin.Unit declared in <root>.Java1' type=kotlin.Unit origin=null
+ ARG t: CONST Double type=kotlin.Double value=1.5
+ ARG t2: CONST Int type=kotlin.Int value=8
+ CLASS INTERFACE name:KotlinInterface modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
+ thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.KotlinInterface
+ FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override,operator]
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
+ VALUE_PARAMETER kind:Regular name:other index:1 type:kotlin.Any?
+ overridden:
+ public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
+ FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN returnType:kotlin.Int [fake_override]
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
+ overridden:
+ public open fun hashCode (): kotlin.Int declared in kotlin.Any
+ FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN returnType:kotlin.String [fake_override]
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
+ overridden:
+ public open fun toString (): kotlin.String declared in kotlin.Any
+ FUN name:bar visibility:public modality:OPEN returnType:T of <root>.KotlinInterface.bar
+ TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.KotlinInterface
+ BLOCK_BODY
+ RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.KotlinInterface.bar declared in <root>.KotlinInterface'
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.KotlinInterface.bar & Any} origin=EXCLEXCL
+ TYPE_ARG T0: kotlin.Nothing
+ ARG arg0: CONST Null type=kotlin.Nothing? value=null
+ FUN name:foo visibility:public modality:OPEN returnType:kotlin.Unit
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.KotlinInterface
+ VALUE_PARAMETER kind:Regular name:t index:1 type:kotlin.Number
+ BLOCK_BODY
+ FUN name:foo visibility:public modality:OPEN returnType:kotlin.Unit
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.KotlinInterface
+ VALUE_PARAMETER kind:Regular name:t index:1 type:kotlin.Number
+ VALUE_PARAMETER kind:Regular name:t2 index:2 type:kotlin.Int
+ EXPRESSION_BODY
+ CONST Int type=kotlin.Int value=7
+ BLOCK_BODY
+ FUN name:foo visibility:public modality:OPEN returnType:kotlin.Unit
+ TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
+ VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.KotlinInterface
+ VALUE_PARAMETER kind:Regular name:t index:1 type:T of <root>.KotlinInterface.foo
+ BLOCK_BODY
+ FUN name:test visibility:public modality:FINAL returnType:kotlin.Unit
+ VALUE_PARAMETER kind:Regular name:a index:0 type:<root>.A
+ VALUE_PARAMETER kind:Regular name:b index:1 type:<root>.B
+ BLOCK_BODY
+ CALL 'public final fun test1 (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
+ ARG <this>: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
+ TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
+ CALL 'public final fun test2 (): kotlin.Int declared in <root>.A' type=kotlin.Int origin=null
+ ARG <this>: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
+ CALL 'public final fun test3 (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
+ ARG <this>: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
+ CALL 'public final fun test4 (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
+ ARG <this>: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
+ CALL 'public final fun test5 (): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
+ ARG <this>: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
+ CALL 'public final fun test1 (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
+ ARG <this>: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
+ TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
+ CALL 'public final fun test2 (): kotlin.Int declared in <root>.B' type=kotlin.Int origin=null
+ ARG <this>: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
+ CALL 'public final fun test3 (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
+ ARG <this>: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
+ CALL 'public final fun test4 (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
+ ARG <this>: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
+ CALL 'public final fun test5 (): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
+ ARG <this>: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
diff --git a/compiler/testData/ir/irText/fakeOverrides/javastatic/intersectionWithGenericOverride.kt b/compiler/testData/ir/irText/fakeOverrides/javastatic/intersectionWithGenericOverride.kt
index 52f1ca3..ab25a5a 100644
--- a/compiler/testData/ir/irText/fakeOverrides/javastatic/intersectionWithGenericOverride.kt
+++ b/compiler/testData/ir/irText/fakeOverrides/javastatic/intersectionWithGenericOverride.kt
@@ -1,5 +1,4 @@
// SKIP_KT_DUMP
-// FIR_IDENTICAL
// TARGET_BACKEND: JVM
// FILE: Java1.java
diff --git a/compiler/testData/ir/irText/fakeOverrides/platformtypes/intersectionWithGenericExplicitOverride.fir.ir.txt b/compiler/testData/ir/irText/fakeOverrides/platformtypes/intersectionWithGenericExplicitOverride.fir.ir.txt
index 5677a1b..33bcc89 100644
--- a/compiler/testData/ir/irText/fakeOverrides/platformtypes/intersectionWithGenericExplicitOverride.fir.ir.txt
+++ b/compiler/testData/ir/irText/fakeOverrides/platformtypes/intersectionWithGenericExplicitOverride.fir.ir.txt
@@ -36,7 +36,7 @@
public abstract fun foo (): @[FlexibleNullability] T of <root>.Java2? declared in <root>.Java2
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun foo (): R of <root>.A declared in <root>.A'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={R of <root>.A & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1<R of <root>.B>; <root>.Java3<R of <root>.B>]
@@ -77,7 +77,7 @@
public open fun foo (): @[FlexibleNullability] T of <root>.Java3? declared in <root>.Java3
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun foo (): R of <root>.B declared in <root>.B'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={R of <root>.B & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
@@ -146,7 +146,7 @@
public abstract fun foo (): T of <root>.KotlinInterface declared in <root>.KotlinInterface
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun foo (): R of <root>.C declared in <root>.C'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={R of <root>.C & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1<R of <root>.D>; <root>.Java2<R of <root>.D>; <root>.KotlinInterface<R of <root>.D>]
@@ -217,7 +217,7 @@
public abstract fun foo (): T of <root>.KotlinInterface declared in <root>.KotlinInterface
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun foo (): R of <root>.D declared in <root>.D'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={R of <root>.D & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java1<R of <root>.E>; <root>.Java2<R of <root>.E>; <root>.Java3<R of <root>.E>]
@@ -313,7 +313,7 @@
public abstract fun foo (): T of <root>.KotlinInterface2 declared in <root>.KotlinInterface2
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun foo (): R of <root>.F declared in <root>.F'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={R of <root>.F & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY name:a visibility:public modality:OPEN [var]
@@ -328,7 +328,7 @@
public abstract fun <get-a> (): T of <root>.KotlinInterface2 declared in <root>.KotlinInterface2
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): R of <root>.F declared in <root>.F'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={R of <root>.F & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:<set-a> visibility:public modality:OPEN returnType:kotlin.Unit
diff --git a/compiler/testData/ir/irText/fakeOverrides/platformtypes/intersectionWithGenericOnComplexHierarchy.fir.ir.txt b/compiler/testData/ir/irText/fakeOverrides/platformtypes/intersectionWithGenericOnComplexHierarchy.fir.ir.txt
index ff35594..ad7c0ad 100644
--- a/compiler/testData/ir/irText/fakeOverrides/platformtypes/intersectionWithGenericOnComplexHierarchy.fir.ir.txt
+++ b/compiler/testData/ir/irText/fakeOverrides/platformtypes/intersectionWithGenericOnComplexHierarchy.fir.ir.txt
@@ -110,7 +110,7 @@
public abstract fun foo (): @[FlexibleNullability] T of <root>.Java2? declared in <root>.Java2
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun foo (): T of <root>.C declared in <root>.C'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.C & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
CLASS CLASS name:D modality:ABSTRACT visibility:public superTypes:[<root>.Kotlin<T of <root>.D>; <root>.Java2<T of <root>.D>]
@@ -224,7 +224,7 @@
public abstract fun foo (): @[FlexibleNullability] T of <root>.Java2? declared in <root>.Java2
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun foo (): T of <root>.E declared in <root>.E'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.E & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
CLASS CLASS name:F modality:ABSTRACT visibility:public superTypes:[<root>.Kotlin2<T of <root>.F>; <root>.Java3<T of <root>.F>]
@@ -298,7 +298,7 @@
public abstract fun foo (): @[FlexibleNullability] T of <root>.Java3? declared in <root>.Java3
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun foo (): T of <root>.G declared in <root>.G'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.G & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
CLASS CLASS name:H modality:ABSTRACT visibility:public superTypes:[<root>.Java4<T of <root>.H>; <root>.Java3<T of <root>.H>]
@@ -372,7 +372,7 @@
public abstract fun foo (): @[FlexibleNullability] T of <root>.Java3? declared in <root>.Java3
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun foo (): T of <root>.I declared in <root>.I'
- CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
+ CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type={T of <root>.I & Any} origin=EXCLEXCL
TYPE_ARG T0: kotlin.Nothing
ARG arg0: CONST Null type=kotlin.Nothing? value=null
CLASS INTERFACE name:A modality:ABSTRACT visibility:public superTypes:[kotlin.Any]