FIR. Refactor smart-cast representation in FIR tree

Make smart-casts non-transparent expression without delegation
to underlying FirQualifiedAccessExpression, as children delegation in
fir tree has unclear semantics
Remove two different kinds of tree nodes for smart-casts
This commit is contained in:
Simon Ogorodnik
2022-08-02 00:49:24 +02:00
committed by teamcity
parent bc9db58b3c
commit 513af2dfbc
154 changed files with 9573 additions and 9320 deletions
@@ -65,10 +65,11 @@ digraph smartCastInInit_kt {
19 [label="Function call: R|/s|()"];
20 [label="Assignment: R|/Main.x|"];
21 [label="Access variable R|/Main.x|"];
22 [label="Function call: this@R|/Main|.R|/Main.x|.R|/S.foo|()"];
23 [label="Exit block"];
22 [label="Smart cast: this@R|/Main|.R|/Main.x|"];
23 [label="Function call: this@R|/Main|.R|/Main.x|.R|/S.foo|()"];
24 [label="Exit block"];
}
24 [label="Exit init block" style="filled" fillcolor=red];
25 [label="Exit init block" style="filled" fillcolor=red];
}
17 -> {18};
18 -> {19};
@@ -77,17 +78,18 @@ digraph smartCastInInit_kt {
21 -> {22};
22 -> {23};
23 -> {24};
24 -> {27} [color=green];
24 -> {25};
25 -> {28} [color=green];
subgraph cluster_8 {
color=red
25 [label="Enter class Main" style="filled" fillcolor=red];
26 [label="Part of class initialization"];
27 [label="Exit class Main" style="filled" fillcolor=red];
26 [label="Enter class Main" style="filled" fillcolor=red];
27 [label="Part of class initialization"];
28 [label="Exit class Main" style="filled" fillcolor=red];
}
25 -> {26} [color=green];
26 -> {27} [style=dotted];
26 -> {17} [color=green];
26 -> {17} [style=dashed];
26 -> {27} [color=green];
27 -> {28} [style=dotted];
27 -> {17} [color=green];
27 -> {17} [style=dashed];
}