FIR CFA: attach accessors and nested classes as class subgraphs

This commit is contained in:
pyos
2022-12-09 19:41:58 +01:00
committed by Dmitriy Novozhilov
parent 5d4fb3ead8
commit cb8cb1f610
5 changed files with 315 additions and 321 deletions
@@ -4,40 +4,10 @@ digraph innerClassInAnonymousObject_kt {
edge [penwidth=2]
subgraph cluster_0 {
color=red
10 [label="Enter class Nested" style="filled" fillcolor=red];
11 [label="Exit class Nested" style="filled" fillcolor=red];
}
subgraph cluster_1 {
color=blue
6 [label="Enter function foo" style="filled" fillcolor=red];
subgraph cluster_2 {
color=blue
7 [label="Enter block"];
8 [label="Exit block"];
}
9 [label="Exit function foo" style="filled" fillcolor=red];
}
subgraph cluster_3 {
color=blue
3 [label="Enter function <init>" style="filled" fillcolor=red];
4 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
5 [label="Exit function <init>" style="filled" fillcolor=red];
}
10 -> {11} [color=green];
11 -> {3 6} [color=green];
11 -> {3 6} [style=dashed];
3 -> {4};
4 -> {5};
6 -> {7};
7 -> {8};
8 -> {9};
subgraph cluster_4 {
color=red
14 [label="Enter property" style="filled" fillcolor=red];
15 [label="Enter anonymous object"];
subgraph cluster_5 {
subgraph cluster_1 {
color=blue
12 [label="Enter class <anonymous object>" style="filled" fillcolor=red];
13 [label="Exit class <anonymous object>" style="filled" fillcolor=red];
@@ -46,6 +16,27 @@ digraph innerClassInAnonymousObject_kt {
17 [label="Exit anonymous object expression"];
18 [label="Exit property" style="filled" fillcolor=red];
}
subgraph cluster_2 {
color=blue
10 [label="Enter class Nested" style="filled" fillcolor=red];
11 [label="Exit class Nested" style="filled" fillcolor=red];
}
subgraph cluster_3 {
color=blue
6 [label="Enter function foo" style="filled" fillcolor=red];
subgraph cluster_4 {
color=blue
7 [label="Enter block"];
8 [label="Exit block"];
}
9 [label="Exit function foo" style="filled" fillcolor=red];
}
subgraph cluster_5 {
color=blue
3 [label="Enter function <init>" style="filled" fillcolor=red];
4 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
5 [label="Exit function <init>" style="filled" fillcolor=red];
}
subgraph cluster_6 {
color=blue
0 [label="Enter function <init>" style="filled" fillcolor=red];
@@ -60,9 +51,17 @@ digraph innerClassInAnonymousObject_kt {
16 -> {17};
17 -> {18};
12 -> {13} [color=green];
13 -> {0 16} [color=green];
13 -> {0} [style=dashed];
13 -> {0 10 16} [color=green];
13 -> {0 10} [style=dashed];
0 -> {1};
1 -> {2};
10 -> {11} [color=green];
11 -> {3 6} [color=green];
11 -> {3 6} [style=dashed];
3 -> {4};
4 -> {5};
6 -> {7};
7 -> {8};
8 -> {9};
}
@@ -155,35 +155,14 @@ digraph nullability_kt {
41 -> {42} [style=dotted];
subgraph cluster_17 {
color=red
49 [label="Enter function getter" style="filled" fillcolor=red];
subgraph cluster_18 {
color=blue
50 [label="Enter block"];
51 [label="Const: Null(null)"];
52 [label="Jump: ^ Null(null)"];
53 [label="Stub" style="filled" fillcolor=gray];
54 [label="Exit block" style="filled" fillcolor=gray];
}
55 [label="Exit function getter" style="filled" fillcolor=red];
}
49 -> {50};
50 -> {51};
51 -> {52};
52 -> {55};
52 -> {53} [style=dotted];
53 -> {54} [style=dotted];
54 -> {55} [style=dotted];
subgraph cluster_19 {
color=red
63 [label="Enter class QImplWithCustomGetter" style="filled" fillcolor=red];
64 [label="Exit class QImplWithCustomGetter" style="filled" fillcolor=red];
}
subgraph cluster_20 {
subgraph cluster_18 {
color=blue
56 [label="Enter function fdata" style="filled" fillcolor=red];
subgraph cluster_21 {
subgraph cluster_19 {
color=blue
57 [label="Enter block"];
58 [label="Const: Null(null)"];
@@ -193,6 +172,19 @@ digraph nullability_kt {
}
62 [label="Exit function fdata" style="filled" fillcolor=red];
}
subgraph cluster_20 {
color=blue
49 [label="Enter function getter" style="filled" fillcolor=red];
subgraph cluster_21 {
color=blue
50 [label="Enter block"];
51 [label="Const: Null(null)"];
52 [label="Jump: ^ Null(null)"];
53 [label="Stub" style="filled" fillcolor=gray];
54 [label="Exit block" style="filled" fillcolor=gray];
}
55 [label="Exit function getter" style="filled" fillcolor=red];
}
subgraph cluster_22 {
color=blue
46 [label="Enter function <init>" style="filled" fillcolor=red];
@@ -200,10 +192,17 @@ digraph nullability_kt {
48 [label="Exit function <init>" style="filled" fillcolor=red];
}
63 -> {64} [color=green];
64 -> {46 56} [color=green];
64 -> {46 56} [style=dashed];
64 -> {46 49 56} [color=green];
64 -> {46 49 56} [style=dashed];
46 -> {47};
47 -> {48};
49 -> {50};
50 -> {51};
51 -> {52};
52 -> {55};
52 -> {53} [style=dotted];
53 -> {54} [style=dotted];
54 -> {55} [style=dotted];
56 -> {57};
57 -> {58};
58 -> {59};