Files
kotlin-fork/compiler/fir/analysis-tests/testData/resolveWithStdlib/smartcasts/tryWithLambdaInside.dot
T
Dmitriy Novozhilov fc57f48c8f [FIR] Union CFG edges from postponed lambdas only if outer call was analyzed independently
Before this change nodes unification was called if outer call was
  completed in the FULL mode, but it may happen even if this call is
  actually a part of some other outer call
2023-07-07 06:45:20 +00:00

222 lines
7.5 KiB
Plaintext
Vendored

digraph tryWithLambdaInside_kt {
graph [nodesep=3]
node [shape=box penwidth=2]
edge [penwidth=2]
subgraph cluster_0 {
color=red
0 [label="Enter function notInPlaceFilter" style="filled" fillcolor=red];
subgraph cluster_1 {
color=blue
1 [label="Enter block"];
2 [label="Access variable this@R|/notInPlaceFilter|"];
3 [label="Jump: ^notInPlaceFilter this@R|/notInPlaceFilter|"];
4 [label="Stub" style="filled" fillcolor=gray];
5 [label="Exit block" style="filled" fillcolor=gray];
}
6 [label="Exit function notInPlaceFilter" style="filled" fillcolor=red];
}
0 -> {1};
1 -> {2};
2 -> {3};
3 -> {6};
3 -> {4} [style=dotted];
4 -> {5} [style=dotted];
5 -> {6} [style=dotted];
subgraph cluster_2 {
color=red
7 [label="Enter function foo" style="filled" fillcolor=red];
subgraph cluster_3 {
color=blue
8 [label="Enter block"];
9 [label="Exit block"];
}
10 [label="Exit function foo" style="filled" fillcolor=red];
}
7 -> {8};
8 -> {9};
9 -> {10};
subgraph cluster_4 {
color=red
11 [label="Enter function testInPlace" style="filled" fillcolor=red];
subgraph cluster_5 {
color=blue
12 [label="Enter block"];
subgraph cluster_6 {
color=blue
13 [label="Try expression enter"];
subgraph cluster_7 {
color=blue
14 [label="Try main block enter"];
subgraph cluster_8 {
color=blue
15 [label="Enter block"];
16 [label="Access variable R|<local>/list|"];
17 [label="Postponed enter to lambda"];
subgraph cluster_9 {
color=blue
18 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_10 {
color=blue
19 [label="Enter block"];
20 [label="Access variable R|<local>/it|"];
21 [label="Exit block"];
}
22 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
23 [label="Postponed exit from lambda"];
24 [label="Function call: R|<local>/list|.R|kotlin/collections/filter|<R|kotlin/Boolean|>(...)" style="filled" fillcolor=yellow];
25 [label="Exit block"];
}
26 [label="Try main block exit"];
}
subgraph cluster_11 {
color=blue
27 [label="Enter finally"];
subgraph cluster_12 {
color=blue
28 [label="Enter block"];
29 [label="Exit block"];
}
30 [label="Exit finally"];
}
31 [label="Try expression exit"];
}
32 [label="Jump: ^testInPlace try {
R|<local>/list|.R|kotlin/collections/filter|<R|kotlin/Boolean|>(<L> = filter@fun <anonymous>(it: R|kotlin/Boolean|): R|kotlin/Boolean| <inline=Inline, kind=UNKNOWN> {
^ R|<local>/it|
}
)
}
finally {
}
"];
33 [label="Stub" style="filled" fillcolor=gray];
34 [label="Exit block" style="filled" fillcolor=gray];
}
35 [label="Exit function testInPlace" style="filled" fillcolor=red];
}
11 -> {12};
12 -> {13};
13 -> {14};
13 -> {27} [label="onUncaughtException"];
14 -> {15};
15 -> {16};
16 -> {17};
17 -> {18 23 24};
17 -> {18} [style=dashed];
18 -> {19};
19 -> {20};
20 -> {21};
21 -> {22};
22 -> {23};
23 -> {17} [color=green style=dashed];
23 -> {24} [color=green];
23 -> {31} [color=red];
24 -> {25};
24 -> {27} [label="onUncaughtException"];
25 -> {26};
26 -> {27};
27 -> {28};
28 -> {29};
29 -> {30};
30 -> {31};
31 -> {32};
32 -> {35};
32 -> {33} [style=dotted];
33 -> {34} [style=dotted];
34 -> {35} [style=dotted];
subgraph cluster_13 {
color=red
36 [label="Enter function testNotInPlace" style="filled" fillcolor=red];
subgraph cluster_14 {
color=blue
37 [label="Enter block"];
subgraph cluster_15 {
color=blue
38 [label="Try expression enter"];
subgraph cluster_16 {
color=blue
39 [label="Try main block enter"];
subgraph cluster_17 {
color=blue
40 [label="Enter block"];
41 [label="Access variable R|<local>/list|"];
42 [label="Postponed enter to lambda"];
subgraph cluster_18 {
color=blue
43 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_19 {
color=blue
44 [label="Enter block"];
45 [label="Access variable R|<local>/it|"];
46 [label="Exit block"];
}
47 [label="Exit function <anonymous>" style="filled" fillcolor=red];
}
48 [label="Postponed exit from lambda"];
49 [label="Function call: R|<local>/list|.R|/notInPlaceFilter|<R|kotlin/Boolean|>(...)" style="filled" fillcolor=yellow];
50 [label="Exit block"];
}
51 [label="Try main block exit"];
}
subgraph cluster_20 {
color=blue
52 [label="Enter finally"];
subgraph cluster_21 {
color=blue
53 [label="Enter block"];
54 [label="Exit block"];
}
55 [label="Exit finally"];
}
56 [label="Try expression exit"];
}
57 [label="Jump: ^testNotInPlace try {
R|<local>/list|.R|/notInPlaceFilter|<R|kotlin/Boolean|>(<L> = notInPlaceFilter@fun <anonymous>(it: R|kotlin/Boolean|): R|kotlin/Boolean| <inline=NoInline> {
^ R|<local>/it|
}
)
}
finally {
}
"];
58 [label="Stub" style="filled" fillcolor=gray];
59 [label="Exit block" style="filled" fillcolor=gray];
}
60 [label="Exit function testNotInPlace" style="filled" fillcolor=red];
}
36 -> {37};
37 -> {38};
38 -> {39};
38 -> {52} [label="onUncaughtException"];
39 -> {40};
40 -> {41};
41 -> {42};
42 -> {43 48 49};
42 -> {43} [style=dashed];
43 -> {44};
44 -> {45};
45 -> {46};
46 -> {47};
48 -> {49} [color=green];
48 -> {56} [color=red];
49 -> {50};
49 -> {52} [label="onUncaughtException"];
50 -> {51};
51 -> {52};
52 -> {53};
53 -> {54};
54 -> {55};
55 -> {56};
56 -> {57};
57 -> {60};
57 -> {58} [style=dotted];
58 -> {59} [style=dotted];
59 -> {60} [style=dotted];
}