[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]