diff --git a/compiler/fir/analysis-tests/testData/resolve/cfg/annotatedLocalClass.dot b/compiler/fir/analysis-tests/testData/resolve/cfg/annotatedLocalClass.dot index 81c1713aa74..a5ab25a1f13 100644 --- a/compiler/fir/analysis-tests/testData/resolve/cfg/annotatedLocalClass.dot +++ b/compiler/fir/analysis-tests/testData/resolve/cfg/annotatedLocalClass.dot @@ -5,19 +5,19 @@ digraph annotatedLocalClass_kt { subgraph cluster_0 { color=red - 0 [label="Enter class Ann" style="filled" fillcolor=red]; - 1 [label="Exit class Ann" style="filled" fillcolor=red]; + 0 [label="Enter function " style="filled" fillcolor=red]; + 1 [label="Delegated constructor call: super()"]; + 2 [label="Exit function " style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; + 0 -> {1}; + 1 -> {2}; subgraph cluster_1 { color=red - 2 [label="Enter function " style="filled" fillcolor=red]; - 3 [label="Delegated constructor call: super()"]; - 4 [label="Exit function " style="filled" fillcolor=red]; + 3 [label="Enter class Ann" style="filled" fillcolor=red]; + 4 [label="Exit class Ann" style="filled" fillcolor=red]; } - 2 -> {3}; - 3 -> {4}; + 3 -> {4} [color=green]; subgraph cluster_2 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/cfg/complex.dot b/compiler/fir/analysis-tests/testData/resolve/cfg/complex.dot index 6f28332ac57..47c1368e802 100644 --- a/compiler/fir/analysis-tests/testData/resolve/cfg/complex.dot +++ b/compiler/fir/analysis-tests/testData/resolve/cfg/complex.dot @@ -5,17 +5,17 @@ digraph complex_kt { subgraph cluster_0 { color=red - 0 [label="Enter class AutoCloseable" style="filled" fillcolor=red]; - 1 [label="Exit class AutoCloseable" style="filled" fillcolor=red]; + 0 [label="Enter function close" style="filled" fillcolor=red]; + 1 [label="Exit function close" style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; + 0 -> {1}; subgraph cluster_1 { color=red - 2 [label="Enter function close" style="filled" fillcolor=red]; - 3 [label="Exit function close" style="filled" fillcolor=red]; + 2 [label="Enter class AutoCloseable" style="filled" fillcolor=red]; + 3 [label="Exit class AutoCloseable" style="filled" fillcolor=red]; } - 2 -> {3}; + 2 -> {3} [color=green]; subgraph cluster_2 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/cfg/initBlock.dot b/compiler/fir/analysis-tests/testData/resolve/cfg/initBlock.dot index ee2c51db490..184c44bff82 100644 --- a/compiler/fir/analysis-tests/testData/resolve/cfg/initBlock.dot +++ b/compiler/fir/analysis-tests/testData/resolve/cfg/initBlock.dot @@ -5,91 +5,91 @@ digraph initBlock_kt { subgraph cluster_0 { color=red - 0 [label="Enter class Foo" style="filled" fillcolor=red]; - 1 [label="Part of class initialization"]; - 2 [label="Exit class Foo" style="filled" fillcolor=red]; + 0 [label="Enter function " style="filled" fillcolor=red]; + 1 [label="Delegated constructor call: super()"]; + 2 [label="Exit function " style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; - 1 -> {2} [style=dotted]; - 1 -> {6} [color=green]; - 1 -> {6} [style=dashed]; + 0 -> {1}; + 1 -> {2}; subgraph cluster_1 { color=red - 3 [label="Enter function " style="filled" fillcolor=red]; - 4 [label="Delegated constructor call: super()"]; - 5 [label="Exit function " style="filled" fillcolor=red]; + 3 [label="Enter init block" style="filled" fillcolor=red]; + subgraph cluster_2 { + color=blue + 4 [label="Enter block"]; + 5 [label="Const: Int(1)"]; + 6 [label="Variable declaration: lval x: R|kotlin/Int|"]; + 7 [label="Exit block"]; + } + 8 [label="Exit init block" style="filled" fillcolor=red]; } 3 -> {4}; 4 -> {5}; - - subgraph cluster_2 { - color=red - 6 [label="Enter init block" style="filled" fillcolor=red]; - subgraph cluster_3 { - color=blue - 7 [label="Enter block"]; - 8 [label="Const: Int(1)"]; - 9 [label="Variable declaration: lval x: R|kotlin/Int|"]; - 10 [label="Exit block"]; - } - 11 [label="Exit init block" style="filled" fillcolor=red]; - } + 5 -> {6}; 6 -> {7}; 7 -> {8}; - 8 -> {9}; - 9 -> {10}; - 10 -> {11}; - 11 -> {2} [color=green]; + 8 -> {11} [color=green]; + + subgraph cluster_3 { + color=red + 9 [label="Enter class Foo" style="filled" fillcolor=red]; + 10 [label="Part of class initialization"]; + 11 [label="Exit class Foo" style="filled" fillcolor=red]; + } + 9 -> {10} [color=green]; + 10 -> {11} [style=dotted]; + 10 -> {3} [color=green]; + 10 -> {3} [style=dashed]; subgraph cluster_4 { color=red - 12 [label="Enter class Bar" style="filled" fillcolor=red]; - 13 [label="Part of class initialization"]; - 14 [label="Exit class Bar" style="filled" fillcolor=red]; + 12 [label="Enter function " style="filled" fillcolor=red]; + 13 [label="Delegated constructor call: super()"]; + 14 [label="Exit function " style="filled" fillcolor=red]; } - 12 -> {13} [color=green]; - 13 -> {14} [style=dotted]; - 13 -> {18} [color=green]; - 13 -> {18} [style=dashed]; + 12 -> {13}; + 13 -> {14}; subgraph cluster_5 { color=red - 15 [label="Enter function " style="filled" fillcolor=red]; - 16 [label="Delegated constructor call: super()"]; - 17 [label="Exit function " style="filled" fillcolor=red]; + 15 [label="Enter init block" style="filled" fillcolor=red]; + subgraph cluster_6 { + color=blue + 16 [label="Enter block"]; + 17 [label="Const: Int(1)"]; + 18 [label="Variable declaration: lval x: R|kotlin/Int|"]; + 19 [label="Function call: R|java/lang/Exception.Exception|()"]; + 20 [label="Throw: throw R|java/lang/Exception.Exception|()"]; + 21 [label="Stub" style="filled" fillcolor=gray]; + 22 [label="Const: Int(2)" style="filled" fillcolor=gray]; + 23 [label="Variable declaration: lval y: R|kotlin/Int|" style="filled" fillcolor=gray]; + 24 [label="Exit block" style="filled" fillcolor=gray]; + } + 25 [label="Exit init block" style="filled" fillcolor=red]; } 15 -> {16}; 16 -> {17}; - - subgraph cluster_6 { - color=red - 18 [label="Enter init block" style="filled" fillcolor=red]; - subgraph cluster_7 { - color=blue - 19 [label="Enter block"]; - 20 [label="Const: Int(1)"]; - 21 [label="Variable declaration: lval x: R|kotlin/Int|"]; - 22 [label="Function call: R|java/lang/Exception.Exception|()"]; - 23 [label="Throw: throw R|java/lang/Exception.Exception|()"]; - 24 [label="Stub" style="filled" fillcolor=gray]; - 25 [label="Const: Int(2)" style="filled" fillcolor=gray]; - 26 [label="Variable declaration: lval y: R|kotlin/Int|" style="filled" fillcolor=gray]; - 27 [label="Exit block" style="filled" fillcolor=gray]; - } - 28 [label="Exit init block" style="filled" fillcolor=red]; - } + 17 -> {18}; 18 -> {19}; 19 -> {20}; - 20 -> {21}; - 21 -> {22}; - 22 -> {23}; - 23 -> {28} [label=onUncaughtException]; + 20 -> {25} [label=onUncaughtException]; + 20 -> {21} [style=dotted]; + 21 -> {22} [style=dotted]; + 22 -> {23} [style=dotted]; 23 -> {24} [style=dotted]; 24 -> {25} [style=dotted]; - 25 -> {26} [style=dotted]; - 26 -> {27} [style=dotted]; + 25 -> {28} [color=green]; + + subgraph cluster_7 { + color=red + 26 [label="Enter class Bar" style="filled" fillcolor=red]; + 27 [label="Part of class initialization"]; + 28 [label="Exit class Bar" style="filled" fillcolor=red]; + } + 26 -> {27} [color=green]; 27 -> {28} [style=dotted]; - 28 -> {14} [color=green]; + 27 -> {15} [color=green]; + 27 -> {15} [style=dashed]; } diff --git a/compiler/fir/analysis-tests/testData/resolve/cfg/initBlockAndInPlaceLambda.dot b/compiler/fir/analysis-tests/testData/resolve/cfg/initBlockAndInPlaceLambda.dot index 4f1d05ab9ea..b772004ea98 100644 --- a/compiler/fir/analysis-tests/testData/resolve/cfg/initBlockAndInPlaceLambda.dot +++ b/compiler/fir/analysis-tests/testData/resolve/cfg/initBlockAndInPlaceLambda.dot @@ -19,78 +19,78 @@ digraph initBlockAndInPlaceLambda_kt { subgraph cluster_2 { color=red - 4 [label="Enter class C" style="filled" fillcolor=red]; - 5 [label="Part of class initialization"]; - 6 [label="Exit class C" style="filled" fillcolor=red]; + 4 [label="Enter function " style="filled" fillcolor=red]; + 5 [label="Delegated constructor call: super()"]; + 6 [label="Exit function " style="filled" fillcolor=red]; } - 4 -> {5} [color=green]; - 5 -> {6} [style=dotted]; - 5 -> {10} [color=green]; - 5 -> {10} [style=dashed]; + 4 -> {5}; + 5 -> {6}; subgraph cluster_3 { color=red - 7 [label="Enter function " style="filled" fillcolor=red]; - 8 [label="Delegated constructor call: super()"]; - 9 [label="Exit function " style="filled" fillcolor=red]; + 7 [label="Enter init block" style="filled" fillcolor=red]; + subgraph cluster_4 { + color=blue + 8 [label="Enter block"]; + 9 [label="Access variable R|/a|"]; + 10 [label="Access variable R|/A.b|"]; + 11 [label="Enter safe call"]; + 12 [label="Postponed enter to lambda"]; + subgraph cluster_5 { + color=blue + 20 [label="Enter function anonymousFunction" style="filled" fillcolor=red]; + subgraph cluster_6 { + color=blue + 21 [label="Enter block"]; + 22 [label="Access variable R|/a|"]; + 23 [label="Access variable R|/it|"]; + 24 [label="Function call: R|/C.C|(...)"]; + 25 [label="Exit block"]; + } + 26 [label="Exit function anonymousFunction" style="filled" fillcolor=red]; + } + 13 [label="Call arguments union" style="filled" fillcolor=yellow]; + 14 [label="Postponed exit from lambda"]; + 15 [label="Function call: $subj$.R|kotlin/let|(...)"]; + 16 [label="Exit safe call"]; + 17 [label="Variable declaration: lval c: R|C?|"]; + 18 [label="Exit block"]; + } + 19 [label="Exit init block" style="filled" fillcolor=red]; } 7 -> {8}; 8 -> {9}; - - subgraph cluster_4 { - color=red - 10 [label="Enter init block" style="filled" fillcolor=red]; - subgraph cluster_5 { - color=blue - 11 [label="Enter block"]; - 12 [label="Access variable R|/a|"]; - 13 [label="Access variable R|/A.b|"]; - 14 [label="Enter safe call"]; - 15 [label="Postponed enter to lambda"]; - subgraph cluster_6 { - color=blue - 23 [label="Enter function anonymousFunction" style="filled" fillcolor=red]; - subgraph cluster_7 { - color=blue - 24 [label="Enter block"]; - 25 [label="Access variable R|/a|"]; - 26 [label="Access variable R|/it|"]; - 27 [label="Function call: R|/C.C|(...)"]; - 28 [label="Exit block"]; - } - 29 [label="Exit function anonymousFunction" style="filled" fillcolor=red]; - } - 16 [label="Call arguments union" style="filled" fillcolor=yellow]; - 17 [label="Postponed exit from lambda"]; - 18 [label="Function call: $subj$.R|kotlin/let|(...)"]; - 19 [label="Exit safe call"]; - 20 [label="Variable declaration: lval c: R|C?|"]; - 21 [label="Exit block"]; - } - 22 [label="Exit init block" style="filled" fillcolor=red]; - } - 10 -> {11}; + 9 -> {10}; + 10 -> {11 16}; 11 -> {12}; - 12 -> {13}; - 13 -> {14 19}; - 14 -> {15}; - 15 -> {23}; - 15 -> {17} [color=red]; - 15 -> {23} [style=dashed]; - 16 -> {18} [color=red]; - 17 -> {18} [color=green]; + 12 -> {20}; + 12 -> {14} [color=red]; + 12 -> {20} [style=dashed]; + 13 -> {15} [color=red]; + 14 -> {15} [color=green]; + 15 -> {16}; + 16 -> {17}; + 17 -> {18}; 18 -> {19}; - 19 -> {20}; + 19 -> {29} [color=green]; 20 -> {21}; 21 -> {22}; - 22 -> {6} [color=green]; + 22 -> {23}; 23 -> {24}; 24 -> {25}; 25 -> {26}; - 26 -> {27}; - 27 -> {28}; - 28 -> {29}; - 29 -> {16} [color=red]; - 29 -> {17} [color=green]; + 26 -> {13} [color=red]; + 26 -> {14} [color=green]; + + subgraph cluster_7 { + color=red + 27 [label="Enter class C" style="filled" fillcolor=red]; + 28 [label="Part of class initialization"]; + 29 [label="Exit class C" style="filled" fillcolor=red]; + } + 27 -> {28} [color=green]; + 28 -> {29} [style=dotted]; + 28 -> {7} [color=green]; + 28 -> {7} [style=dashed]; } diff --git a/compiler/fir/analysis-tests/testData/resolve/cfg/innerClassInAnonymousObject.dot b/compiler/fir/analysis-tests/testData/resolve/cfg/innerClassInAnonymousObject.dot index f810ea9e9a7..eb716ff74a8 100644 --- a/compiler/fir/analysis-tests/testData/resolve/cfg/innerClassInAnonymousObject.dot +++ b/compiler/fir/analysis-tests/testData/resolve/cfg/innerClassInAnonymousObject.dot @@ -14,33 +14,33 @@ digraph innerClassInAnonymousObject_kt { subgraph cluster_1 { color=red - 3 [label="Enter class Nested" style="filled" fillcolor=red]; - 4 [label="Exit class Nested" style="filled" fillcolor=red]; + 3 [label="Enter function " style="filled" fillcolor=red]; + 4 [label="Delegated constructor call: super()"]; + 5 [label="Exit function " style="filled" fillcolor=red]; } - 3 -> {4} [color=green]; + 3 -> {4}; + 4 -> {5}; subgraph cluster_2 { color=red - 5 [label="Enter function " style="filled" fillcolor=red]; - 6 [label="Delegated constructor call: super()"]; - 7 [label="Exit function " style="filled" fillcolor=red]; - } - 5 -> {6}; - 6 -> {7}; - - subgraph cluster_3 { - color=red - 8 [label="Enter function foo" style="filled" fillcolor=red]; - subgraph cluster_4 { + 6 [label="Enter function foo" style="filled" fillcolor=red]; + subgraph cluster_3 { color=blue - 9 [label="Enter block"]; - 10 [label="Exit block"]; + 7 [label="Enter block"]; + 8 [label="Exit block"]; } - 11 [label="Exit function foo" style="filled" fillcolor=red]; + 9 [label="Exit function foo" style="filled" fillcolor=red]; } + 6 -> {7}; + 7 -> {8}; 8 -> {9}; - 9 -> {10}; - 10 -> {11}; + + subgraph cluster_4 { + color=red + 10 [label="Enter class Nested" style="filled" fillcolor=red]; + 11 [label="Exit class Nested" style="filled" fillcolor=red]; + } + 10 -> {11} [color=green]; subgraph cluster_5 { color=red @@ -55,7 +55,7 @@ digraph innerClassInAnonymousObject_kt { 13 [label="Exit class " style="filled" fillcolor=red]; } 14 -> {15}; - 14 -> {0 5 8} [color=red]; + 14 -> {0 3 6} [color=red]; 15 -> {16}; 15 -> {0 12} [color=green]; 15 -> {0 12} [style=dashed]; diff --git a/compiler/fir/analysis-tests/testData/resolve/cfg/lambdaReturningObject.dot b/compiler/fir/analysis-tests/testData/resolve/cfg/lambdaReturningObject.dot index 48013f56aa8..6d352c84266 100644 --- a/compiler/fir/analysis-tests/testData/resolve/cfg/lambdaReturningObject.dot +++ b/compiler/fir/analysis-tests/testData/resolve/cfg/lambdaReturningObject.dot @@ -33,19 +33,19 @@ digraph lambdaReturningObject_kt { subgraph cluster_4 { color=red - 8 [label="Enter class IrStarProjectionImpl" style="filled" fillcolor=red]; - 9 [label="Exit class IrStarProjectionImpl" style="filled" fillcolor=red]; + 8 [label="Enter function " style="filled" fillcolor=red]; + 9 [label="Delegated constructor call: super()"]; + 10 [label="Exit function " style="filled" fillcolor=red]; } - 8 -> {9} [color=green]; + 8 -> {9}; + 9 -> {10}; subgraph cluster_5 { color=red - 10 [label="Enter function " style="filled" fillcolor=red]; - 11 [label="Delegated constructor call: super()"]; - 12 [label="Exit function " style="filled" fillcolor=red]; + 11 [label="Enter class IrStarProjectionImpl" style="filled" fillcolor=red]; + 12 [label="Exit class IrStarProjectionImpl" style="filled" fillcolor=red]; } - 10 -> {11}; - 11 -> {12}; + 11 -> {12} [color=green]; subgraph cluster_6 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/cfg/postponedLambdaInConstructor.dot b/compiler/fir/analysis-tests/testData/resolve/cfg/postponedLambdaInConstructor.dot index b298bc9a378..fbff3d6071a 100644 --- a/compiler/fir/analysis-tests/testData/resolve/cfg/postponedLambdaInConstructor.dot +++ b/compiler/fir/analysis-tests/testData/resolve/cfg/postponedLambdaInConstructor.dot @@ -5,111 +5,111 @@ digraph postponedLambdaInConstructor_kt { subgraph cluster_0 { color=red - 0 [label="Enter class A" style="filled" fillcolor=red]; - 1 [label="Exit class A" style="filled" fillcolor=red]; + 0 [label="Enter function " style="filled" fillcolor=red]; + 1 [label="Delegated constructor call: super()"]; + 2 [label="Exit function " style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; + 0 -> {1}; + 1 -> {2}; subgraph cluster_1 { color=red - 2 [label="Enter function " style="filled" fillcolor=red]; - 3 [label="Delegated constructor call: super()"]; - 4 [label="Exit function " style="filled" fillcolor=red]; + 3 [label="Enter class A" style="filled" fillcolor=red]; + 4 [label="Exit class A" style="filled" fillcolor=red]; } - 2 -> {3}; - 3 -> {4}; + 3 -> {4} [color=green]; subgraph cluster_2 { color=red - 5 [label="Enter class B" style="filled" fillcolor=red]; - 6 [label="Part of class initialization"]; - 7 [label="Exit class B" style="filled" fillcolor=red]; - } - 5 -> {6} [color=green]; - 6 -> {7} [style=dotted]; - 6 -> {27} [color=green]; - 6 -> {27} [style=dashed]; - - subgraph cluster_3 { - color=red - 8 [label="Enter function " style="filled" fillcolor=red]; - 9 [label="Access variable R|/s|"]; - 10 [label="Postponed enter to lambda"]; - subgraph cluster_4 { + 5 [label="Enter function " style="filled" fillcolor=red]; + 6 [label="Access variable R|/s|"]; + 7 [label="Postponed enter to lambda"]; + subgraph cluster_3 { color=blue - 16 [label="Enter function anonymousFunction" style="filled" fillcolor=red]; - subgraph cluster_5 { + 13 [label="Enter function anonymousFunction" style="filled" fillcolor=red]; + subgraph cluster_4 { color=blue - 17 [label="Enter block"]; - 18 [label="Postponed enter to lambda"]; - subgraph cluster_6 { + 14 [label="Enter block"]; + 15 [label="Postponed enter to lambda"]; + subgraph cluster_5 { color=blue - 22 [label="Enter function anonymousFunction" style="filled" fillcolor=red]; - subgraph cluster_7 { + 19 [label="Enter function anonymousFunction" style="filled" fillcolor=red]; + subgraph cluster_6 { color=blue - 23 [label="Enter block"]; - 24 [label="Access variable R|/it|"]; - 25 [label="Exit block"]; + 20 [label="Enter block"]; + 21 [label="Access variable R|/it|"]; + 22 [label="Exit block"]; } - 26 [label="Exit function anonymousFunction" style="filled" fillcolor=red]; + 23 [label="Exit function anonymousFunction" style="filled" fillcolor=red]; } - 19 [label="Postponed exit from lambda"]; - 20 [label="Exit block"]; + 16 [label="Postponed exit from lambda"]; + 17 [label="Exit block"]; } - 21 [label="Exit function anonymousFunction" style="filled" fillcolor=red]; + 18 [label="Exit function anonymousFunction" style="filled" fillcolor=red]; } - 11 [label="Postponed exit from lambda"]; - 12 [label="Function call: R|/s|.R|kotlin/let| kotlin/String|>(...)"]; - 13 [label="Call arguments union" style="filled" fillcolor=yellow]; - 14 [label="Delegated constructor call: super(...)"]; - 15 [label="Exit function " style="filled" fillcolor=red]; + 8 [label="Postponed exit from lambda"]; + 9 [label="Function call: R|/s|.R|kotlin/let| kotlin/String|>(...)"]; + 10 [label="Call arguments union" style="filled" fillcolor=yellow]; + 11 [label="Delegated constructor call: super(...)"]; + 12 [label="Exit function " style="filled" fillcolor=red]; } + 5 -> {6}; + 6 -> {7}; + 7 -> {13}; + 7 -> {8} [color=red]; + 7 -> {13} [style=dashed]; 8 -> {9}; 9 -> {10}; - 10 -> {16}; - 10 -> {11} [color=red]; - 10 -> {16} [style=dashed]; + 10 -> {11}; 11 -> {12}; - 12 -> {13}; 13 -> {14}; 14 -> {15}; + 15 -> {16 19}; + 15 -> {19} [style=dashed]; 16 -> {17}; 17 -> {18}; - 18 -> {19 22}; - 18 -> {22} [style=dashed]; + 18 -> {10} [color=red]; + 18 -> {8} [color=green]; 19 -> {20}; 20 -> {21}; - 21 -> {13} [color=red]; - 21 -> {11} [color=green]; + 21 -> {22}; 22 -> {23}; - 23 -> {24}; + + subgraph cluster_7 { + color=red + 24 [label="Enter property" style="filled" fillcolor=red]; + 25 [label="Access variable R|/s|"]; + 26 [label="Exit property" style="filled" fillcolor=red]; + } 24 -> {25}; 25 -> {26}; + 26 -> {34} [color=green]; subgraph cluster_8 { color=red - 27 [label="Enter property" style="filled" fillcolor=red]; - 28 [label="Access variable R|/s|"]; - 29 [label="Exit property" style="filled" fillcolor=red]; + 27 [label="Enter function foo" style="filled" fillcolor=red]; + subgraph cluster_9 { + color=blue + 28 [label="Enter block"]; + 29 [label="Function call: this@R|/B|.R|/B.foo|()"]; + 30 [label="Exit block"]; + } + 31 [label="Exit function foo" style="filled" fillcolor=red]; } 27 -> {28}; 28 -> {29}; - 29 -> {7} [color=green]; - - subgraph cluster_9 { - color=red - 30 [label="Enter function foo" style="filled" fillcolor=red]; - subgraph cluster_10 { - color=blue - 31 [label="Enter block"]; - 32 [label="Function call: this@R|/B|.R|/B.foo|()"]; - 33 [label="Exit block"]; - } - 34 [label="Exit function foo" style="filled" fillcolor=red]; - } + 29 -> {30}; 30 -> {31}; - 31 -> {32}; - 32 -> {33}; - 33 -> {34}; + + subgraph cluster_10 { + color=red + 32 [label="Enter class B" style="filled" fillcolor=red]; + 33 [label="Part of class initialization"]; + 34 [label="Exit class B" style="filled" fillcolor=red]; + } + 32 -> {33} [color=green]; + 33 -> {34} [style=dotted]; + 33 -> {24} [color=green]; + 33 -> {24} [style=dashed]; } diff --git a/compiler/fir/analysis-tests/testData/resolve/cfg/returnValuesFromLambda.dot b/compiler/fir/analysis-tests/testData/resolve/cfg/returnValuesFromLambda.dot index 398d20ba9db..9e36a1e04e2 100644 --- a/compiler/fir/analysis-tests/testData/resolve/cfg/returnValuesFromLambda.dot +++ b/compiler/fir/analysis-tests/testData/resolve/cfg/returnValuesFromLambda.dot @@ -12,35 +12,35 @@ digraph returnValuesFromLambda_kt { subgraph cluster_1 { color=red - 2 [label="Enter class B" style="filled" fillcolor=red]; - 3 [label="Exit class B" style="filled" fillcolor=red]; + 2 [label="Enter function " style="filled" fillcolor=red]; + 3 [label="Delegated constructor call: super()"]; + 4 [label="Exit function " style="filled" fillcolor=red]; } - 2 -> {3} [color=green]; + 2 -> {3}; + 3 -> {4}; subgraph cluster_2 { color=red - 4 [label="Enter function " style="filled" fillcolor=red]; - 5 [label="Delegated constructor call: super()"]; - 6 [label="Exit function " style="filled" fillcolor=red]; + 5 [label="Enter class B" style="filled" fillcolor=red]; + 6 [label="Exit class B" style="filled" fillcolor=red]; } - 4 -> {5}; - 5 -> {6}; + 5 -> {6} [color=green]; subgraph cluster_3 { color=red - 7 [label="Enter class C" style="filled" fillcolor=red]; - 8 [label="Exit class C" style="filled" fillcolor=red]; + 7 [label="Enter function " style="filled" fillcolor=red]; + 8 [label="Delegated constructor call: super()"]; + 9 [label="Exit function " style="filled" fillcolor=red]; } - 7 -> {8} [color=green]; + 7 -> {8}; + 8 -> {9}; subgraph cluster_4 { color=red - 9 [label="Enter function " style="filled" fillcolor=red]; - 10 [label="Delegated constructor call: super()"]; - 11 [label="Exit function " style="filled" fillcolor=red]; + 10 [label="Enter class C" style="filled" fillcolor=red]; + 11 [label="Exit class C" style="filled" fillcolor=red]; } - 9 -> {10}; - 10 -> {11}; + 10 -> {11} [color=green]; subgraph cluster_5 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/cfg/safeCalls.dot b/compiler/fir/analysis-tests/testData/resolve/cfg/safeCalls.dot index a23204e4a74..466f75cc5be 100644 --- a/compiler/fir/analysis-tests/testData/resolve/cfg/safeCalls.dot +++ b/compiler/fir/analysis-tests/testData/resolve/cfg/safeCalls.dot @@ -5,24 +5,24 @@ digraph safeCalls_kt { subgraph cluster_0 { color=red - 0 [label="Enter class A" style="filled" fillcolor=red]; - 1 [label="Exit class A" style="filled" fillcolor=red]; + 0 [label="Enter function foo" style="filled" fillcolor=red]; + 1 [label="Exit function foo" style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; + 0 -> {1}; subgraph cluster_1 { color=red - 2 [label="Enter function foo" style="filled" fillcolor=red]; - 3 [label="Exit function foo" style="filled" fillcolor=red]; + 2 [label="Enter function bar" style="filled" fillcolor=red]; + 3 [label="Exit function bar" style="filled" fillcolor=red]; } 2 -> {3}; subgraph cluster_2 { color=red - 4 [label="Enter function bar" style="filled" fillcolor=red]; - 5 [label="Exit function bar" style="filled" fillcolor=red]; + 4 [label="Enter class A" style="filled" fillcolor=red]; + 5 [label="Exit class A" style="filled" fillcolor=red]; } - 4 -> {5}; + 4 -> {5} [color=green]; subgraph cluster_3 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/exhaustiveness/positive/exhaustiveWhenAndDNNType.dot b/compiler/fir/analysis-tests/testData/resolve/exhaustiveness/positive/exhaustiveWhenAndDNNType.dot index 6ade94a6915..6bfb077ae0f 100644 --- a/compiler/fir/analysis-tests/testData/resolve/exhaustiveness/positive/exhaustiveWhenAndDNNType.dot +++ b/compiler/fir/analysis-tests/testData/resolve/exhaustiveness/positive/exhaustiveWhenAndDNNType.dot @@ -5,35 +5,35 @@ digraph exhaustiveWhenAndDNNType_kt { subgraph cluster_0 { color=red - 0 [label="Enter class SomeEnum" style="filled" fillcolor=red]; - 1 [label="Exit class SomeEnum" style="filled" fillcolor=red]; + 0 [label="Enter function " style="filled" fillcolor=red]; + 1 [label="Delegated constructor call: super|>()"]; + 2 [label="Exit function " style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; + 0 -> {1}; + 1 -> {2}; subgraph cluster_1 { color=red - 2 [label="Enter function " style="filled" fillcolor=red]; - 3 [label="Delegated constructor call: super|>()"]; - 4 [label="Exit function " style="filled" fillcolor=red]; + 3 [label="Enter class SomeEnum" style="filled" fillcolor=red]; + 4 [label="Exit class SomeEnum" style="filled" fillcolor=red]; } - 2 -> {3}; - 3 -> {4}; + 3 -> {4} [color=green]; subgraph cluster_2 { color=red - 5 [label="Enter class B" style="filled" fillcolor=red]; - 6 [label="Exit class B" style="filled" fillcolor=red]; + 5 [label="Enter function " style="filled" fillcolor=red]; + 6 [label="Delegated constructor call: super()"]; + 7 [label="Exit function " style="filled" fillcolor=red]; } - 5 -> {6} [color=green]; + 5 -> {6}; + 6 -> {7}; subgraph cluster_3 { color=red - 7 [label="Enter function " style="filled" fillcolor=red]; - 8 [label="Delegated constructor call: super()"]; - 9 [label="Exit function " style="filled" fillcolor=red]; + 8 [label="Enter class B" style="filled" fillcolor=red]; + 9 [label="Exit class B" style="filled" fillcolor=red]; } - 7 -> {8}; - 8 -> {9}; + 8 -> {9} [color=green]; subgraph cluster_4 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/multifile/Annotations.fir.txt b/compiler/fir/analysis-tests/testData/resolve/multifile/Annotations.fir.txt index c7eccbef40c..d725b82ecf7 100644 --- a/compiler/fir/analysis-tests/testData/resolve/multifile/Annotations.fir.txt +++ b/compiler/fir/analysis-tests/testData/resolve/multifile/Annotations.fir.txt @@ -90,4 +90,4 @@ FILE: main.kt } } - @R|annotations/WithInt|(Int(24)) @R|annotations/VeryComplex|(Float(3.14), Double(6.67E-11), Boolean(false), Long(123456789012345), Null(null)) @R|annotations/WithInt|(Int(24)) @R|annotations/VeryComplex|(Float(3.14), Double(6.67E-11), Boolean(false), Long(123456789012345), Null(null)) public final typealias Third = R|@R|annotations/Simple|() test/Second| + @R|annotations/WithInt|(Int(24)) @R|annotations/VeryComplex|(Float(3.14), Double(6.67E-11), Boolean(false), Long(123456789012345), Null(null)) public final typealias Third = R|@R|annotations/Simple|() test/Second| diff --git a/compiler/fir/analysis-tests/testData/resolve/problems/secondaryConstructorCfg.dot b/compiler/fir/analysis-tests/testData/resolve/problems/secondaryConstructorCfg.dot index ed08b1129a1..6054bc68e51 100644 --- a/compiler/fir/analysis-tests/testData/resolve/problems/secondaryConstructorCfg.dot +++ b/compiler/fir/analysis-tests/testData/resolve/problems/secondaryConstructorCfg.dot @@ -5,99 +5,99 @@ digraph secondaryConstructorCfg_kt { subgraph cluster_0 { color=red - 0 [label="Enter class B" style="filled" fillcolor=red]; - 1 [label="Part of class initialization"]; - 2 [label="Part of class initialization"]; - 3 [label="Part of class initialization"]; - 4 [label="Exit class B" style="filled" fillcolor=red]; + 0 [label="Enter function " style="filled" fillcolor=red]; + 1 [label="Delegated constructor call: super()"]; + 2 [label="Exit function " style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; - 1 -> {2} [style=dotted]; - 1 -> {8} [color=green]; - 1 -> {8} [style=dashed]; - 2 -> {3} [style=dotted]; - 2 -> {11} [color=green]; - 2 -> {11} [style=dashed]; - 3 -> {4} [style=dotted]; - 3 -> {23} [color=green]; - 3 -> {23} [style=dashed]; + 0 -> {1}; + 1 -> {2}; subgraph cluster_1 { color=red - 5 [label="Enter function " style="filled" fillcolor=red]; - 6 [label="Delegated constructor call: super()"]; - 7 [label="Exit function " style="filled" fillcolor=red]; + 3 [label="Enter property" style="filled" fillcolor=red]; + 4 [label="Access variable R|/p0|"]; + 5 [label="Exit property" style="filled" fillcolor=red]; } - 5 -> {6}; - 6 -> {7}; + 3 -> {4}; + 4 -> {5}; + 5 -> {29} [color=green]; subgraph cluster_2 { color=red - 8 [label="Enter property" style="filled" fillcolor=red]; - 9 [label="Access variable R|/p0|"]; - 10 [label="Exit property" style="filled" fillcolor=red]; + 6 [label="Enter property" style="filled" fillcolor=red]; + 7 [label="Access variable R|/p0|"]; + 8 [label="Access variable R|kotlin/String.length|"]; + 9 [label="Exit property" style="filled" fillcolor=red]; } + 6 -> {7}; + 7 -> {8}; 8 -> {9}; - 9 -> {10}; - 10 -> {2} [color=green]; + 9 -> {30} [color=green]; subgraph cluster_3 { color=red - 11 [label="Enter property" style="filled" fillcolor=red]; - 12 [label="Access variable R|/p0|"]; - 13 [label="Access variable R|kotlin/String.length|"]; - 14 [label="Exit property" style="filled" fillcolor=red]; + 10 [label="Enter function " style="filled" fillcolor=red]; + 11 [label="Access variable R|/p0|"]; + 12 [label="Delegated constructor call: this(...)"]; + subgraph cluster_4 { + color=blue + 13 [label="Enter block"]; + 14 [label="Access variable R|/p1|"]; + 15 [label="Assignment: R|/B.p3|"]; + 16 [label="Exit block"]; + } + 17 [label="Exit function " style="filled" fillcolor=red]; } + 10 -> {11}; 11 -> {12}; 12 -> {13}; 13 -> {14}; - 14 -> {3} [color=green]; - - subgraph cluster_4 { - color=red - 15 [label="Enter function " style="filled" fillcolor=red]; - 16 [label="Access variable R|/p0|"]; - 17 [label="Delegated constructor call: this(...)"]; - subgraph cluster_5 { - color=blue - 18 [label="Enter block"]; - 19 [label="Access variable R|/p1|"]; - 20 [label="Assignment: R|/B.p3|"]; - 21 [label="Exit block"]; - } - 22 [label="Exit function " style="filled" fillcolor=red]; - } + 14 -> {15}; 15 -> {16}; 16 -> {17}; - 17 -> {18}; + + subgraph cluster_5 { + color=red + 18 [label="Enter init block" style="filled" fillcolor=red]; + subgraph cluster_6 { + color=blue + 19 [label="Enter block"]; + 20 [label="Access variable R|/p0|"]; + 21 [label="Access variable R|kotlin/String.length|"]; + 22 [label="Assignment: R|/B.p1|"]; + 23 [label="Const: String()"]; + 24 [label="Assignment: R|/B.p3|"]; + 25 [label="Exit block"]; + } + 26 [label="Exit init block" style="filled" fillcolor=red]; + } 18 -> {19}; 19 -> {20}; 20 -> {21}; 21 -> {22}; - - subgraph cluster_6 { - color=red - 23 [label="Enter init block" style="filled" fillcolor=red]; - subgraph cluster_7 { - color=blue - 24 [label="Enter block"]; - 25 [label="Access variable R|/p0|"]; - 26 [label="Access variable R|kotlin/String.length|"]; - 27 [label="Assignment: R|/B.p1|"]; - 28 [label="Const: String()"]; - 29 [label="Assignment: R|/B.p3|"]; - 30 [label="Exit block"]; - } - 31 [label="Exit init block" style="filled" fillcolor=red]; - } + 22 -> {23}; 23 -> {24}; 24 -> {25}; 25 -> {26}; - 26 -> {27}; - 27 -> {28}; - 28 -> {29}; - 29 -> {30}; - 30 -> {31}; - 31 -> {4} [color=green]; + 26 -> {31} [color=green]; + + subgraph cluster_7 { + color=red + 27 [label="Enter class B" style="filled" fillcolor=red]; + 28 [label="Part of class initialization"]; + 29 [label="Part of class initialization"]; + 30 [label="Part of class initialization"]; + 31 [label="Exit class B" style="filled" fillcolor=red]; + } + 27 -> {28} [color=green]; + 28 -> {29} [style=dotted]; + 28 -> {3} [color=green]; + 28 -> {3} [style=dashed]; + 29 -> {30} [style=dotted]; + 29 -> {6} [color=green]; + 29 -> {6} [style=dashed]; + 30 -> {31} [style=dotted]; + 30 -> {18} [color=green]; + 30 -> {18} [style=dashed]; } diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/bangbang.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/bangbang.dot index 21b1cf18f46..f55e732cf3b 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/bangbang.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/bangbang.dot @@ -5,17 +5,17 @@ digraph bangbang_kt { subgraph cluster_0 { color=red - 0 [label="Enter class A" style="filled" fillcolor=red]; - 1 [label="Exit class A" style="filled" fillcolor=red]; + 0 [label="Enter function foo" style="filled" fillcolor=red]; + 1 [label="Exit function foo" style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; + 0 -> {1}; subgraph cluster_1 { color=red - 2 [label="Enter function foo" style="filled" fillcolor=red]; - 3 [label="Exit function foo" style="filled" fillcolor=red]; + 2 [label="Enter class A" style="filled" fillcolor=red]; + 3 [label="Exit class A" style="filled" fillcolor=red]; } - 2 -> {3}; + 2 -> {3} [color=green]; subgraph cluster_2 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/booleans/booleanOperators.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/booleans/booleanOperators.dot index 9704312a802..93dc3d36030 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/booleans/booleanOperators.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/booleans/booleanOperators.dot @@ -5,52 +5,52 @@ digraph booleanOperators_kt { subgraph cluster_0 { color=red - 0 [label="Enter class A" style="filled" fillcolor=red]; - 1 [label="Exit class A" style="filled" fillcolor=red]; + 0 [label="Enter function foo" style="filled" fillcolor=red]; + 1 [label="Exit function foo" style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; + 0 -> {1}; subgraph cluster_1 { color=red - 2 [label="Enter function foo" style="filled" fillcolor=red]; - 3 [label="Exit function foo" style="filled" fillcolor=red]; + 2 [label="Enter function bool" style="filled" fillcolor=red]; + 3 [label="Exit function bool" style="filled" fillcolor=red]; } 2 -> {3}; subgraph cluster_2 { color=red - 4 [label="Enter function bool" style="filled" fillcolor=red]; - 5 [label="Exit function bool" style="filled" fillcolor=red]; + 4 [label="Enter class A" style="filled" fillcolor=red]; + 5 [label="Exit class A" style="filled" fillcolor=red]; } - 4 -> {5}; + 4 -> {5} [color=green]; subgraph cluster_3 { color=red - 6 [label="Enter class B" style="filled" fillcolor=red]; - 7 [label="Exit class B" style="filled" fillcolor=red]; + 6 [label="Enter function bar" style="filled" fillcolor=red]; + 7 [label="Exit function bar" style="filled" fillcolor=red]; } - 6 -> {7} [color=green]; + 6 -> {7}; subgraph cluster_4 { color=red - 8 [label="Enter function bar" style="filled" fillcolor=red]; - 9 [label="Exit function bar" style="filled" fillcolor=red]; + 8 [label="Enter class B" style="filled" fillcolor=red]; + 9 [label="Exit class B" style="filled" fillcolor=red]; } - 8 -> {9}; + 8 -> {9} [color=green]; subgraph cluster_5 { color=red - 10 [label="Enter class C" style="filled" fillcolor=red]; - 11 [label="Exit class C" style="filled" fillcolor=red]; + 10 [label="Enter function baz" style="filled" fillcolor=red]; + 11 [label="Exit function baz" style="filled" fillcolor=red]; } - 10 -> {11} [color=green]; + 10 -> {11}; subgraph cluster_6 { color=red - 12 [label="Enter function baz" style="filled" fillcolor=red]; - 13 [label="Exit function baz" style="filled" fillcolor=red]; + 12 [label="Enter class C" style="filled" fillcolor=red]; + 13 [label="Exit class C" style="filled" fillcolor=red]; } - 12 -> {13}; + 12 -> {13} [color=green]; subgraph cluster_7 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/booleans/equalsToBoolean.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/booleans/equalsToBoolean.dot index 33450580c60..dfa78c46e0a 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/booleans/equalsToBoolean.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/booleans/equalsToBoolean.dot @@ -5,17 +5,17 @@ digraph equalsToBoolean_kt { subgraph cluster_0 { color=red - 0 [label="Enter class A" style="filled" fillcolor=red]; - 1 [label="Exit class A" style="filled" fillcolor=red]; + 0 [label="Enter function foo" style="filled" fillcolor=red]; + 1 [label="Exit function foo" style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; + 0 -> {1}; subgraph cluster_1 { color=red - 2 [label="Enter function foo" style="filled" fillcolor=red]; - 3 [label="Exit function foo" style="filled" fillcolor=red]; + 2 [label="Enter class A" style="filled" fillcolor=red]; + 3 [label="Exit class A" style="filled" fillcolor=red]; } - 2 -> {3}; + 2 -> {3} [color=green]; subgraph cluster_2 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/booleans/jumpFromRhsOfOperator.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/booleans/jumpFromRhsOfOperator.dot index 2a8c3150695..8e8ac55c49f 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/booleans/jumpFromRhsOfOperator.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/booleans/jumpFromRhsOfOperator.dot @@ -5,17 +5,17 @@ digraph jumpFromRhsOfOperator_kt { subgraph cluster_0 { color=red - 0 [label="Enter class A" style="filled" fillcolor=red]; - 1 [label="Exit class A" style="filled" fillcolor=red]; + 0 [label="Enter function foo" style="filled" fillcolor=red]; + 1 [label="Exit function foo" style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; + 0 -> {1}; subgraph cluster_1 { color=red - 2 [label="Enter function foo" style="filled" fillcolor=red]; - 3 [label="Exit function foo" style="filled" fillcolor=red]; + 2 [label="Enter class A" style="filled" fillcolor=red]; + 3 [label="Exit class A" style="filled" fillcolor=red]; } - 2 -> {3}; + 2 -> {3} [color=green]; subgraph cluster_2 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/boundSmartcasts/boundSmartcasts.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/boundSmartcasts/boundSmartcasts.dot index fb58fb5d62f..cff31420500 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/boundSmartcasts/boundSmartcasts.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/boundSmartcasts/boundSmartcasts.dot @@ -5,31 +5,31 @@ digraph boundSmartcasts_kt { subgraph cluster_0 { color=red - 0 [label="Enter class A" style="filled" fillcolor=red]; - 1 [label="Exit class A" style="filled" fillcolor=red]; + 0 [label="Enter function foo" style="filled" fillcolor=red]; + 1 [label="Exit function foo" style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; + 0 -> {1}; subgraph cluster_1 { color=red - 2 [label="Enter function foo" style="filled" fillcolor=red]; - 3 [label="Exit function foo" style="filled" fillcolor=red]; + 2 [label="Enter class A" style="filled" fillcolor=red]; + 3 [label="Exit class A" style="filled" fillcolor=red]; } - 2 -> {3}; + 2 -> {3} [color=green]; subgraph cluster_2 { color=red - 4 [label="Enter class B" style="filled" fillcolor=red]; - 5 [label="Exit class B" style="filled" fillcolor=red]; + 4 [label="Enter function bar" style="filled" fillcolor=red]; + 5 [label="Exit function bar" style="filled" fillcolor=red]; } - 4 -> {5} [color=green]; + 4 -> {5}; subgraph cluster_3 { color=red - 6 [label="Enter function bar" style="filled" fillcolor=red]; - 7 [label="Exit function bar" style="filled" fillcolor=red]; + 6 [label="Enter class B" style="filled" fillcolor=red]; + 7 [label="Exit class B" style="filled" fillcolor=red]; } - 6 -> {7}; + 6 -> {7} [color=green]; subgraph cluster_4 { color=red @@ -316,33 +316,33 @@ digraph boundSmartcasts_kt { subgraph cluster_27 { color=red - 115 [label="Enter class D" style="filled" fillcolor=red]; - 116 [label="Part of class initialization"]; - 117 [label="Exit class D" style="filled" fillcolor=red]; + 115 [label="Enter function " style="filled" fillcolor=red]; + 116 [label="Delegated constructor call: super()"]; + 117 [label="Exit function " style="filled" fillcolor=red]; } - 115 -> {116} [color=green]; - 116 -> {117} [style=dotted]; - 116 -> {121} [color=green]; - 116 -> {121} [style=dashed]; + 115 -> {116}; + 116 -> {117}; subgraph cluster_28 { color=red - 118 [label="Enter function " style="filled" fillcolor=red]; - 119 [label="Delegated constructor call: super()"]; - 120 [label="Exit function " style="filled" fillcolor=red]; + 118 [label="Enter property" style="filled" fillcolor=red]; + 119 [label="Access variable R|/any|"]; + 120 [label="Exit property" style="filled" fillcolor=red]; } 118 -> {119}; 119 -> {120}; + 120 -> {123} [color=green]; subgraph cluster_29 { color=red - 121 [label="Enter property" style="filled" fillcolor=red]; - 122 [label="Access variable R|/any|"]; - 123 [label="Exit property" style="filled" fillcolor=red]; + 121 [label="Enter class D" style="filled" fillcolor=red]; + 122 [label="Part of class initialization"]; + 123 [label="Exit class D" style="filled" fillcolor=red]; } - 121 -> {122}; - 122 -> {123}; - 123 -> {117} [color=green]; + 121 -> {122} [color=green]; + 122 -> {123} [style=dotted]; + 122 -> {118} [color=green]; + 122 -> {118} [style=dashed]; subgraph cluster_30 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/boundSmartcasts/boundSmartcastsInBranches.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/boundSmartcasts/boundSmartcastsInBranches.dot index 0fb3a59caad..bc7ce6fce2e 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/boundSmartcasts/boundSmartcastsInBranches.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/boundSmartcasts/boundSmartcastsInBranches.dot @@ -5,33 +5,33 @@ digraph boundSmartcastsInBranches_kt { subgraph cluster_0 { color=red - 0 [label="Enter class A" style="filled" fillcolor=red]; - 1 [label="Part of class initialization"]; - 2 [label="Exit class A" style="filled" fillcolor=red]; + 0 [label="Enter function " style="filled" fillcolor=red]; + 1 [label="Delegated constructor call: super()"]; + 2 [label="Exit function " style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; - 1 -> {2} [style=dotted]; - 1 -> {6} [color=green]; - 1 -> {6} [style=dashed]; + 0 -> {1}; + 1 -> {2}; subgraph cluster_1 { color=red - 3 [label="Enter function " style="filled" fillcolor=red]; - 4 [label="Delegated constructor call: super()"]; - 5 [label="Exit function " style="filled" fillcolor=red]; + 3 [label="Enter property" style="filled" fillcolor=red]; + 4 [label="Const: String()"]; + 5 [label="Exit property" style="filled" fillcolor=red]; } 3 -> {4}; 4 -> {5}; + 5 -> {8} [color=green]; subgraph cluster_2 { color=red - 6 [label="Enter property" style="filled" fillcolor=red]; - 7 [label="Const: String()"]; - 8 [label="Exit property" style="filled" fillcolor=red]; + 6 [label="Enter class A" style="filled" fillcolor=red]; + 7 [label="Part of class initialization"]; + 8 [label="Exit class A" style="filled" fillcolor=red]; } - 6 -> {7}; - 7 -> {8}; - 8 -> {2} [color=green]; + 6 -> {7} [color=green]; + 7 -> {8} [style=dotted]; + 7 -> {3} [color=green]; + 7 -> {3} [style=dashed]; subgraph cluster_3 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/boundSmartcasts/functionCallBound.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/boundSmartcasts/functionCallBound.dot index f1c3638662d..de1a195e905 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/boundSmartcasts/functionCallBound.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/boundSmartcasts/functionCallBound.dot @@ -5,49 +5,49 @@ digraph functionCallBound_kt { subgraph cluster_0 { color=red - 0 [label="Enter class Base" style="filled" fillcolor=red]; - 1 [label="Exit class Base" style="filled" fillcolor=red]; + 0 [label="Enter function " style="filled" fillcolor=red]; + 1 [label="Delegated constructor call: super()"]; + 2 [label="Exit function " style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; + 0 -> {1}; + 1 -> {2}; subgraph cluster_1 { color=red - 2 [label="Enter function " style="filled" fillcolor=red]; - 3 [label="Delegated constructor call: super()"]; - 4 [label="Exit function " style="filled" fillcolor=red]; + 3 [label="Enter class Base" style="filled" fillcolor=red]; + 4 [label="Exit class Base" style="filled" fillcolor=red]; } - 2 -> {3}; - 3 -> {4}; + 3 -> {4} [color=green]; subgraph cluster_2 { color=red - 5 [label="Enter class Sub" style="filled" fillcolor=red]; - 6 [label="Part of class initialization"]; - 7 [label="Exit class Sub" style="filled" fillcolor=red]; + 5 [label="Enter function " style="filled" fillcolor=red]; + 6 [label="Delegated constructor call: super()"]; + 7 [label="Exit function " style="filled" fillcolor=red]; } - 5 -> {6} [color=green]; - 6 -> {7} [style=dotted]; - 6 -> {11} [color=green]; - 6 -> {11} [style=dashed]; + 5 -> {6}; + 6 -> {7}; subgraph cluster_3 { color=red - 8 [label="Enter function " style="filled" fillcolor=red]; - 9 [label="Delegated constructor call: super()"]; - 10 [label="Exit function " style="filled" fillcolor=red]; + 8 [label="Enter property" style="filled" fillcolor=red]; + 9 [label="Access variable R|/data|"]; + 10 [label="Exit property" style="filled" fillcolor=red]; } 8 -> {9}; 9 -> {10}; + 10 -> {13} [color=green]; subgraph cluster_4 { color=red - 11 [label="Enter property" style="filled" fillcolor=red]; - 12 [label="Access variable R|/data|"]; - 13 [label="Exit property" style="filled" fillcolor=red]; + 11 [label="Enter class Sub" style="filled" fillcolor=red]; + 12 [label="Part of class initialization"]; + 13 [label="Exit class Sub" style="filled" fillcolor=red]; } - 11 -> {12}; - 12 -> {13}; - 13 -> {7} [color=green]; + 11 -> {12} [color=green]; + 12 -> {13} [style=dotted]; + 12 -> {8} [color=green]; + 12 -> {8} [style=dashed]; subgraph cluster_5 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/controlStructures/elvis.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/controlStructures/elvis.dot index d6d9a250f28..980bfeeb95b 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/controlStructures/elvis.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/controlStructures/elvis.dot @@ -5,17 +5,17 @@ digraph elvis_kt { subgraph cluster_0 { color=red - 0 [label="Enter class A" style="filled" fillcolor=red]; - 1 [label="Exit class A" style="filled" fillcolor=red]; + 0 [label="Enter function foo" style="filled" fillcolor=red]; + 1 [label="Exit function foo" style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; + 0 -> {1}; subgraph cluster_1 { color=red - 2 [label="Enter function foo" style="filled" fillcolor=red]; - 3 [label="Exit function foo" style="filled" fillcolor=red]; + 2 [label="Enter class A" style="filled" fillcolor=red]; + 3 [label="Exit class A" style="filled" fillcolor=red]; } - 2 -> {3}; + 2 -> {3} [color=green]; subgraph cluster_2 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/controlStructures/returns.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/controlStructures/returns.dot index b4be8d08174..59e26835c50 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/controlStructures/returns.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/controlStructures/returns.dot @@ -148,45 +148,45 @@ digraph returns_kt { subgraph cluster_14 { color=red - 50 [label="Enter class A" style="filled" fillcolor=red]; - 51 [label="Exit class A" style="filled" fillcolor=red]; + 50 [label="Enter function foo" style="filled" fillcolor=red]; + 51 [label="Exit function foo" style="filled" fillcolor=red]; } - 50 -> {51} [color=green]; + 50 -> {51}; subgraph cluster_15 { color=red - 52 [label="Enter function foo" style="filled" fillcolor=red]; - 53 [label="Exit function foo" style="filled" fillcolor=red]; + 52 [label="Enter class A" style="filled" fillcolor=red]; + 53 [label="Exit class A" style="filled" fillcolor=red]; } - 52 -> {53}; + 52 -> {53} [color=green]; subgraph cluster_16 { color=red - 54 [label="Enter class B" style="filled" fillcolor=red]; - 55 [label="Exit class B" style="filled" fillcolor=red]; + 54 [label="Enter function bar" style="filled" fillcolor=red]; + 55 [label="Exit function bar" style="filled" fillcolor=red]; } - 54 -> {55} [color=green]; + 54 -> {55}; subgraph cluster_17 { color=red - 56 [label="Enter function bar" style="filled" fillcolor=red]; - 57 [label="Exit function bar" style="filled" fillcolor=red]; + 56 [label="Enter class B" style="filled" fillcolor=red]; + 57 [label="Exit class B" style="filled" fillcolor=red]; } - 56 -> {57}; + 56 -> {57} [color=green]; subgraph cluster_18 { color=red - 58 [label="Enter class C" style="filled" fillcolor=red]; - 59 [label="Exit class C" style="filled" fillcolor=red]; + 58 [label="Enter function baz" style="filled" fillcolor=red]; + 59 [label="Exit function baz" style="filled" fillcolor=red]; } - 58 -> {59} [color=green]; + 58 -> {59}; subgraph cluster_19 { color=red - 60 [label="Enter function baz" style="filled" fillcolor=red]; - 61 [label="Exit function baz" style="filled" fillcolor=red]; + 60 [label="Enter class C" style="filled" fillcolor=red]; + 61 [label="Exit class C" style="filled" fillcolor=red]; } - 60 -> {61}; + 60 -> {61} [color=green]; subgraph cluster_20 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/controlStructures/smartcastFromArgument.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/controlStructures/smartcastFromArgument.dot index 47b877c55ac..fdd4aa077e9 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/controlStructures/smartcastFromArgument.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/controlStructures/smartcastFromArgument.dot @@ -5,17 +5,17 @@ digraph smartcastFromArgument_kt { subgraph cluster_0 { color=red - 0 [label="Enter class A" style="filled" fillcolor=red]; - 1 [label="Exit class A" style="filled" fillcolor=red]; + 0 [label="Enter function foo" style="filled" fillcolor=red]; + 1 [label="Exit function foo" style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; + 0 -> {1}; subgraph cluster_1 { color=red - 2 [label="Enter function foo" style="filled" fillcolor=red]; - 3 [label="Exit function foo" style="filled" fillcolor=red]; + 2 [label="Enter class A" style="filled" fillcolor=red]; + 3 [label="Exit class A" style="filled" fillcolor=red]; } - 2 -> {3}; + 2 -> {3} [color=green]; subgraph cluster_2 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/controlStructures/when.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/controlStructures/when.dot index fd872538422..76f831199d6 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/controlStructures/when.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/controlStructures/when.dot @@ -5,31 +5,31 @@ digraph when_kt { subgraph cluster_0 { color=red - 0 [label="Enter class A" style="filled" fillcolor=red]; - 1 [label="Exit class A" style="filled" fillcolor=red]; + 0 [label="Enter function foo" style="filled" fillcolor=red]; + 1 [label="Exit function foo" style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; + 0 -> {1}; subgraph cluster_1 { color=red - 2 [label="Enter function foo" style="filled" fillcolor=red]; - 3 [label="Exit function foo" style="filled" fillcolor=red]; + 2 [label="Enter class A" style="filled" fillcolor=red]; + 3 [label="Exit class A" style="filled" fillcolor=red]; } - 2 -> {3}; + 2 -> {3} [color=green]; subgraph cluster_2 { color=red - 4 [label="Enter class B" style="filled" fillcolor=red]; - 5 [label="Exit class B" style="filled" fillcolor=red]; + 4 [label="Enter function bar" style="filled" fillcolor=red]; + 5 [label="Exit function bar" style="filled" fillcolor=red]; } - 4 -> {5} [color=green]; + 4 -> {5}; subgraph cluster_3 { color=red - 6 [label="Enter function bar" style="filled" fillcolor=red]; - 7 [label="Exit function bar" style="filled" fillcolor=red]; + 6 [label="Enter class B" style="filled" fillcolor=red]; + 7 [label="Exit class B" style="filled" fillcolor=red]; } - 6 -> {7}; + 6 -> {7} [color=green]; subgraph cluster_4 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/equalsAndIdentity.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/equalsAndIdentity.dot index fc1c14088bb..2b97c2a78aa 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/equalsAndIdentity.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/equalsAndIdentity.dot @@ -5,17 +5,17 @@ digraph equalsAndIdentity_kt { subgraph cluster_0 { color=red - 0 [label="Enter class A" style="filled" fillcolor=red]; - 1 [label="Exit class A" style="filled" fillcolor=red]; + 0 [label="Enter function foo" style="filled" fillcolor=red]; + 1 [label="Exit function foo" style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; + 0 -> {1}; subgraph cluster_1 { color=red - 2 [label="Enter function foo" style="filled" fillcolor=red]; - 3 [label="Exit function foo" style="filled" fillcolor=red]; + 2 [label="Enter class A" style="filled" fillcolor=red]; + 3 [label="Exit class A" style="filled" fillcolor=red]; } - 2 -> {3}; + 2 -> {3} [color=green]; subgraph cluster_2 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/lambdas/inPlaceLambdas.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/lambdas/inPlaceLambdas.dot index 1386cc91d05..befe1f62b8d 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/lambdas/inPlaceLambdas.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/lambdas/inPlaceLambdas.dot @@ -5,31 +5,31 @@ digraph inPlaceLambdas_kt { subgraph cluster_0 { color=red - 0 [label="Enter class A" style="filled" fillcolor=red]; - 1 [label="Exit class A" style="filled" fillcolor=red]; + 0 [label="Enter function foo" style="filled" fillcolor=red]; + 1 [label="Exit function foo" style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; + 0 -> {1}; subgraph cluster_1 { color=red - 2 [label="Enter function foo" style="filled" fillcolor=red]; - 3 [label="Exit function foo" style="filled" fillcolor=red]; + 2 [label="Enter class A" style="filled" fillcolor=red]; + 3 [label="Exit class A" style="filled" fillcolor=red]; } - 2 -> {3}; + 2 -> {3} [color=green]; subgraph cluster_2 { color=red - 4 [label="Enter class B" style="filled" fillcolor=red]; - 5 [label="Exit class B" style="filled" fillcolor=red]; + 4 [label="Enter function bar" style="filled" fillcolor=red]; + 5 [label="Exit function bar" style="filled" fillcolor=red]; } - 4 -> {5} [color=green]; + 4 -> {5}; subgraph cluster_3 { color=red - 6 [label="Enter function bar" style="filled" fillcolor=red]; - 7 [label="Exit function bar" style="filled" fillcolor=red]; + 6 [label="Enter class B" style="filled" fillcolor=red]; + 7 [label="Exit class B" style="filled" fillcolor=red]; } - 6 -> {7}; + 6 -> {7} [color=green]; subgraph cluster_4 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/lambdas/lambdaInWhenBranch.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/lambdas/lambdaInWhenBranch.dot index 5579b6b4365..2e9ba2f2375 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/lambdas/lambdaInWhenBranch.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/lambdas/lambdaInWhenBranch.dot @@ -5,95 +5,95 @@ digraph lambdaInWhenBranch_kt { subgraph cluster_0 { color=red - 0 [label="Enter class Sealed" style="filled" fillcolor=red]; - 1 [label="Exit class Sealed" style="filled" fillcolor=red]; + 0 [label="Enter function " style="filled" fillcolor=red]; + 1 [label="Delegated constructor call: super()"]; + 2 [label="Exit function " style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; + 0 -> {1}; + 1 -> {2}; subgraph cluster_1 { color=red - 2 [label="Enter function " style="filled" fillcolor=red]; - 3 [label="Delegated constructor call: super()"]; - 4 [label="Exit function " style="filled" fillcolor=red]; + 3 [label="Enter class Sealed" style="filled" fillcolor=red]; + 4 [label="Exit class Sealed" style="filled" fillcolor=red]; } - 2 -> {3}; - 3 -> {4}; + 3 -> {4} [color=green]; subgraph cluster_2 { color=red - 5 [label="Enter class SubClass1" style="filled" fillcolor=red]; - 6 [label="Part of class initialization"]; - 7 [label="Exit class SubClass1" style="filled" fillcolor=red]; + 5 [label="Enter function " style="filled" fillcolor=red]; + 6 [label="Delegated constructor call: super()"]; + 7 [label="Exit function " style="filled" fillcolor=red]; } - 5 -> {6} [color=green]; - 6 -> {7} [style=dotted]; - 6 -> {11} [color=green]; - 6 -> {11} [style=dashed]; + 5 -> {6}; + 6 -> {7}; subgraph cluster_3 { color=red - 8 [label="Enter function " style="filled" fillcolor=red]; - 9 [label="Delegated constructor call: super()"]; - 10 [label="Exit function " style="filled" fillcolor=red]; + 8 [label="Enter property" style="filled" fillcolor=red]; + 9 [label="Access variable R|/t|"]; + 10 [label="Exit property" style="filled" fillcolor=red]; } 8 -> {9}; 9 -> {10}; + 10 -> {20} [color=green]; subgraph cluster_4 { color=red - 11 [label="Enter property" style="filled" fillcolor=red]; - 12 [label="Access variable R|/t|"]; - 13 [label="Exit property" style="filled" fillcolor=red]; + 11 [label="Enter function component1" style="filled" fillcolor=red]; + 12 [label="Exit function component1" style="filled" fillcolor=red]; } 11 -> {12}; - 12 -> {13}; - 13 -> {7} [color=green]; subgraph cluster_5 { color=red - 14 [label="Enter function component1" style="filled" fillcolor=red]; - 15 [label="Exit function component1" style="filled" fillcolor=red]; - } - 14 -> {15}; - - subgraph cluster_6 { - color=red - 16 [label="Enter function copy" style="filled" fillcolor=red]; - subgraph cluster_7 { + 13 [label="Enter function copy" style="filled" fillcolor=red]; + subgraph cluster_6 { color=blue - 18 [label="Enter default value of t" style="filled" fillcolor=red]; - 19 [label="Access variable R|/SubClass1.t|"]; - 20 [label="Exit default value of t" style="filled" fillcolor=red]; + 15 [label="Enter default value of t" style="filled" fillcolor=red]; + 16 [label="Access variable R|/SubClass1.t|"]; + 17 [label="Exit default value of t" style="filled" fillcolor=red]; } - 17 [label="Exit function copy" style="filled" fillcolor=red]; + 14 [label="Exit function copy" style="filled" fillcolor=red]; } - 16 -> {18 17}; - 18 -> {19}; - 18 -> {18} [style=dashed]; - 19 -> {20}; + 13 -> {15 14}; + 15 -> {16}; + 15 -> {15} [style=dashed]; + 16 -> {17}; + + subgraph cluster_7 { + color=red + 18 [label="Enter class SubClass1" style="filled" fillcolor=red]; + 19 [label="Part of class initialization"]; + 20 [label="Exit class SubClass1" style="filled" fillcolor=red]; + } + 18 -> {19} [color=green]; + 19 -> {20} [style=dotted]; + 19 -> {8} [color=green]; + 19 -> {8} [style=dashed]; subgraph cluster_8 { color=red - 21 [label="Enter class SubClass2" style="filled" fillcolor=red]; - 22 [label="Exit class SubClass2" style="filled" fillcolor=red]; + 21 [label="Enter function " style="filled" fillcolor=red]; + 22 [label="Delegated constructor call: super()"]; + 23 [label="Exit function " style="filled" fillcolor=red]; } - 21 -> {22} [color=green]; + 21 -> {22}; + 22 -> {23}; subgraph cluster_9 { color=red - 23 [label="Enter function " style="filled" fillcolor=red]; - 24 [label="Delegated constructor call: super()"]; - 25 [label="Exit function " style="filled" fillcolor=red]; + 24 [label="Enter function copy" style="filled" fillcolor=red]; + 25 [label="Exit function copy" style="filled" fillcolor=red]; } - 23 -> {24}; 24 -> {25}; subgraph cluster_10 { color=red - 26 [label="Enter function copy" style="filled" fillcolor=red]; - 27 [label="Exit function copy" style="filled" fillcolor=red]; + 26 [label="Enter class SubClass2" style="filled" fillcolor=red]; + 27 [label="Exit class SubClass2" style="filled" fillcolor=red]; } - 26 -> {27}; + 26 -> {27} [color=green]; subgraph cluster_11 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/loops/dataFlowInfoFromWhileCondition.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/loops/dataFlowInfoFromWhileCondition.dot index 5c0ffc0310d..4074a02264f 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/loops/dataFlowInfoFromWhileCondition.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/loops/dataFlowInfoFromWhileCondition.dot @@ -5,17 +5,17 @@ digraph dataFlowInfoFromWhileCondition_kt { subgraph cluster_0 { color=red - 0 [label="Enter class A" style="filled" fillcolor=red]; - 1 [label="Exit class A" style="filled" fillcolor=red]; + 0 [label="Enter function foo" style="filled" fillcolor=red]; + 1 [label="Exit function foo" style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; + 0 -> {1}; subgraph cluster_1 { color=red - 2 [label="Enter function foo" style="filled" fillcolor=red]; - 3 [label="Exit function foo" style="filled" fillcolor=red]; + 2 [label="Enter class A" style="filled" fillcolor=red]; + 3 [label="Exit class A" style="filled" fillcolor=red]; } - 2 -> {3}; + 2 -> {3} [color=green]; subgraph cluster_2 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/loops/endlessLoops.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/loops/endlessLoops.dot index 9a15a7db83b..822e9ea2cdf 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/loops/endlessLoops.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/loops/endlessLoops.dot @@ -5,17 +5,17 @@ digraph endlessLoops_kt { subgraph cluster_0 { color=red - 0 [label="Enter class A" style="filled" fillcolor=red]; - 1 [label="Exit class A" style="filled" fillcolor=red]; + 0 [label="Enter function foo" style="filled" fillcolor=red]; + 1 [label="Exit function foo" style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; + 0 -> {1}; subgraph cluster_1 { color=red - 2 [label="Enter function foo" style="filled" fillcolor=red]; - 3 [label="Exit function foo" style="filled" fillcolor=red]; + 2 [label="Enter class A" style="filled" fillcolor=red]; + 3 [label="Exit class A" style="filled" fillcolor=red]; } - 2 -> {3}; + 2 -> {3} [color=green]; subgraph cluster_2 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/multipleCasts.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/multipleCasts.dot index d129b08df4a..8e474e97a09 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/multipleCasts.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/multipleCasts.dot @@ -5,31 +5,31 @@ digraph multipleCasts_kt { subgraph cluster_0 { color=red - 0 [label="Enter class A" style="filled" fillcolor=red]; - 1 [label="Exit class A" style="filled" fillcolor=red]; + 0 [label="Enter function foo" style="filled" fillcolor=red]; + 1 [label="Exit function foo" style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; + 0 -> {1}; subgraph cluster_1 { color=red - 2 [label="Enter function foo" style="filled" fillcolor=red]; - 3 [label="Exit function foo" style="filled" fillcolor=red]; + 2 [label="Enter class A" style="filled" fillcolor=red]; + 3 [label="Exit class A" style="filled" fillcolor=red]; } - 2 -> {3}; + 2 -> {3} [color=green]; subgraph cluster_2 { color=red - 4 [label="Enter class B" style="filled" fillcolor=red]; - 5 [label="Exit class B" style="filled" fillcolor=red]; + 4 [label="Enter function foo" style="filled" fillcolor=red]; + 5 [label="Exit function foo" style="filled" fillcolor=red]; } - 4 -> {5} [color=green]; + 4 -> {5}; subgraph cluster_3 { color=red - 6 [label="Enter function foo" style="filled" fillcolor=red]; - 7 [label="Exit function foo" style="filled" fillcolor=red]; + 6 [label="Enter class B" style="filled" fillcolor=red]; + 7 [label="Exit class B" style="filled" fillcolor=red]; } - 6 -> {7}; + 6 -> {7} [color=green]; subgraph cluster_4 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/nullability.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/nullability.dot index 9636ca4f760..c8b8b9b0dc9 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/nullability.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/nullability.dot @@ -5,212 +5,212 @@ digraph nullability_kt { subgraph cluster_0 { color=red - 0 [label="Enter class A" style="filled" fillcolor=red]; - 1 [label="Exit class A" style="filled" fillcolor=red]; + 0 [label="Enter function foo" style="filled" fillcolor=red]; + 1 [label="Exit function foo" style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; + 0 -> {1}; subgraph cluster_1 { color=red - 2 [label="Enter function foo" style="filled" fillcolor=red]; - 3 [label="Exit function foo" style="filled" fillcolor=red]; + 2 [label="Enter function getA" style="filled" fillcolor=red]; + 3 [label="Exit function getA" style="filled" fillcolor=red]; } 2 -> {3}; subgraph cluster_2 { color=red - 4 [label="Enter function getA" style="filled" fillcolor=red]; - 5 [label="Exit function getA" style="filled" fillcolor=red]; + 4 [label="Enter class A" style="filled" fillcolor=red]; + 5 [label="Exit class A" style="filled" fillcolor=red]; } - 4 -> {5}; + 4 -> {5} [color=green]; subgraph cluster_3 { color=red - 6 [label="Enter class MyData" style="filled" fillcolor=red]; - 7 [label="Exit class MyData" style="filled" fillcolor=red]; + 6 [label="Enter function fs" style="filled" fillcolor=red]; + 7 [label="Exit function fs" style="filled" fillcolor=red]; } - 6 -> {7} [color=green]; + 6 -> {7}; subgraph cluster_4 { color=red - 8 [label="Enter function fs" style="filled" fillcolor=red]; - 9 [label="Exit function fs" style="filled" fillcolor=red]; + 8 [label="Enter class MyData" style="filled" fillcolor=red]; + 9 [label="Exit class MyData" style="filled" fillcolor=red]; } - 8 -> {9}; + 8 -> {9} [color=green]; subgraph cluster_5 { color=red - 10 [label="Enter class Q" style="filled" fillcolor=red]; - 11 [label="Exit class Q" style="filled" fillcolor=red]; + 10 [label="Enter function fdata" style="filled" fillcolor=red]; + 11 [label="Exit function fdata" style="filled" fillcolor=red]; } - 10 -> {11} [color=green]; + 10 -> {11}; subgraph cluster_6 { color=red - 12 [label="Enter function fdata" style="filled" fillcolor=red]; - 13 [label="Exit function fdata" style="filled" fillcolor=red]; + 12 [label="Enter class Q" style="filled" fillcolor=red]; + 13 [label="Exit class Q" style="filled" fillcolor=red]; } - 12 -> {13}; + 12 -> {13} [color=green]; subgraph cluster_7 { color=red - 14 [label="Enter class QImpl" style="filled" fillcolor=red]; - 15 [label="Part of class initialization"]; - 16 [label="Exit class QImpl" style="filled" fillcolor=red]; + 14 [label="Enter function " style="filled" fillcolor=red]; + 15 [label="Delegated constructor call: super()"]; + 16 [label="Exit function " style="filled" fillcolor=red]; } - 14 -> {15} [color=green]; - 15 -> {16} [style=dotted]; - 15 -> {20} [color=green]; - 15 -> {20} [style=dashed]; + 14 -> {15}; + 15 -> {16}; subgraph cluster_8 { color=red - 17 [label="Enter function " style="filled" fillcolor=red]; - 18 [label="Delegated constructor call: super()"]; - 19 [label="Exit function " style="filled" fillcolor=red]; + 17 [label="Enter property" style="filled" fillcolor=red]; + 18 [label="Access variable R|/data|"]; + 19 [label="Exit property" style="filled" fillcolor=red]; } 17 -> {18}; 18 -> {19}; + 19 -> {29} [color=green]; subgraph cluster_9 { color=red - 20 [label="Enter property" style="filled" fillcolor=red]; - 21 [label="Access variable R|/data|"]; - 22 [label="Exit property" style="filled" fillcolor=red]; + 20 [label="Enter function fdata" style="filled" fillcolor=red]; + subgraph cluster_10 { + color=blue + 21 [label="Enter block"]; + 22 [label="Const: Null(null)"]; + 23 [label="Jump: ^fdata Null(null)"]; + 24 [label="Stub" style="filled" fillcolor=gray]; + 25 [label="Exit block" style="filled" fillcolor=gray]; + } + 26 [label="Exit function fdata" style="filled" fillcolor=red]; } 20 -> {21}; 21 -> {22}; - 22 -> {16} [color=green]; + 22 -> {23}; + 23 -> {26}; + 23 -> {24} [style=dotted]; + 24 -> {25} [style=dotted]; + 25 -> {26} [style=dotted]; - subgraph cluster_10 { + subgraph cluster_11 { color=red - 23 [label="Enter function fdata" style="filled" fillcolor=red]; - subgraph cluster_11 { - color=blue - 24 [label="Enter block"]; - 25 [label="Const: Null(null)"]; - 26 [label="Jump: ^fdata Null(null)"]; - 27 [label="Stub" style="filled" fillcolor=gray]; - 28 [label="Exit block" style="filled" fillcolor=gray]; - } - 29 [label="Exit function fdata" style="filled" fillcolor=red]; + 27 [label="Enter class QImpl" style="filled" fillcolor=red]; + 28 [label="Part of class initialization"]; + 29 [label="Exit class QImpl" style="filled" fillcolor=red]; } - 23 -> {24}; - 24 -> {25}; - 25 -> {26}; - 26 -> {29}; - 26 -> {27} [style=dotted]; - 27 -> {28} [style=dotted]; + 27 -> {28} [color=green]; 28 -> {29} [style=dotted]; + 28 -> {17} [color=green]; + 28 -> {17} [style=dashed]; subgraph cluster_12 { color=red - 30 [label="Enter class QImplMutable" style="filled" fillcolor=red]; - 31 [label="Part of class initialization"]; - 32 [label="Exit class QImplMutable" style="filled" fillcolor=red]; + 30 [label="Enter function " style="filled" fillcolor=red]; + 31 [label="Delegated constructor call: super()"]; + 32 [label="Exit function " style="filled" fillcolor=red]; } - 30 -> {31} [color=green]; - 31 -> {32} [style=dotted]; - 31 -> {36} [color=green]; - 31 -> {36} [style=dashed]; + 30 -> {31}; + 31 -> {32}; subgraph cluster_13 { color=red - 33 [label="Enter function " style="filled" fillcolor=red]; - 34 [label="Delegated constructor call: super()"]; - 35 [label="Exit function " style="filled" fillcolor=red]; + 33 [label="Enter property" style="filled" fillcolor=red]; + 34 [label="Access variable R|/data|"]; + 35 [label="Exit property" style="filled" fillcolor=red]; } 33 -> {34}; 34 -> {35}; + 35 -> {45} [color=green]; subgraph cluster_14 { color=red - 36 [label="Enter property" style="filled" fillcolor=red]; - 37 [label="Access variable R|/data|"]; - 38 [label="Exit property" style="filled" fillcolor=red]; + 36 [label="Enter function fdata" style="filled" fillcolor=red]; + subgraph cluster_15 { + color=blue + 37 [label="Enter block"]; + 38 [label="Const: Null(null)"]; + 39 [label="Jump: ^fdata Null(null)"]; + 40 [label="Stub" style="filled" fillcolor=gray]; + 41 [label="Exit block" style="filled" fillcolor=gray]; + } + 42 [label="Exit function fdata" style="filled" fillcolor=red]; } 36 -> {37}; 37 -> {38}; - 38 -> {32} [color=green]; + 38 -> {39}; + 39 -> {42}; + 39 -> {40} [style=dotted]; + 40 -> {41} [style=dotted]; + 41 -> {42} [style=dotted]; - subgraph cluster_15 { + subgraph cluster_16 { color=red - 39 [label="Enter function fdata" style="filled" fillcolor=red]; - subgraph cluster_16 { - color=blue - 40 [label="Enter block"]; - 41 [label="Const: Null(null)"]; - 42 [label="Jump: ^fdata Null(null)"]; - 43 [label="Stub" style="filled" fillcolor=gray]; - 44 [label="Exit block" style="filled" fillcolor=gray]; - } - 45 [label="Exit function fdata" style="filled" fillcolor=red]; + 43 [label="Enter class QImplMutable" style="filled" fillcolor=red]; + 44 [label="Part of class initialization"]; + 45 [label="Exit class QImplMutable" style="filled" fillcolor=red]; } - 39 -> {40}; - 40 -> {41}; - 41 -> {42}; - 42 -> {45}; - 42 -> {43} [style=dotted]; - 43 -> {44} [style=dotted]; + 43 -> {44} [color=green]; 44 -> {45} [style=dotted]; + 44 -> {33} [color=green]; + 44 -> {33} [style=dashed]; subgraph cluster_17 { color=red - 46 [label="Enter class QImplWithCustomGetter" style="filled" fillcolor=red]; - 47 [label="Exit class QImplWithCustomGetter" style="filled" fillcolor=red]; + 46 [label="Enter function " style="filled" fillcolor=red]; + 47 [label="Delegated constructor call: super()"]; + 48 [label="Exit function " style="filled" fillcolor=red]; } - 46 -> {47} [color=green]; + 46 -> {47}; + 47 -> {48}; subgraph cluster_18 { color=red - 48 [label="Enter function " style="filled" fillcolor=red]; - 49 [label="Delegated constructor call: super()"]; - 50 [label="Exit function " style="filled" fillcolor=red]; + 49 [label="Enter function getter" style="filled" fillcolor=red]; + subgraph cluster_19 { + 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]; } - 48 -> {49}; 49 -> {50}; - - subgraph cluster_19 { - color=red - 51 [label="Enter function getter" style="filled" fillcolor=red]; - subgraph cluster_20 { - color=blue - 52 [label="Enter block"]; - 53 [label="Const: Null(null)"]; - 54 [label="Jump: ^ Null(null)"]; - 55 [label="Stub" style="filled" fillcolor=gray]; - 56 [label="Exit block" style="filled" fillcolor=gray]; - } - 57 [label="Exit function getter" style="filled" fillcolor=red]; - } + 50 -> {51}; 51 -> {52}; - 52 -> {53}; - 53 -> {54}; - 54 -> {57}; + 52 -> {55}; + 52 -> {53} [style=dotted]; + 53 -> {54} [style=dotted]; 54 -> {55} [style=dotted]; - 55 -> {56} [style=dotted]; - 56 -> {57} [style=dotted]; - subgraph cluster_21 { + subgraph cluster_20 { color=red - 58 [label="Enter function fdata" style="filled" fillcolor=red]; - subgraph cluster_22 { + 56 [label="Enter function fdata" style="filled" fillcolor=red]; + subgraph cluster_21 { color=blue - 59 [label="Enter block"]; - 60 [label="Const: Null(null)"]; - 61 [label="Jump: ^fdata Null(null)"]; - 62 [label="Stub" style="filled" fillcolor=gray]; - 63 [label="Exit block" style="filled" fillcolor=gray]; + 57 [label="Enter block"]; + 58 [label="Const: Null(null)"]; + 59 [label="Jump: ^fdata Null(null)"]; + 60 [label="Stub" style="filled" fillcolor=gray]; + 61 [label="Exit block" style="filled" fillcolor=gray]; } - 64 [label="Exit function fdata" style="filled" fillcolor=red]; + 62 [label="Exit function fdata" style="filled" fillcolor=red]; } + 56 -> {57}; + 57 -> {58}; 58 -> {59}; - 59 -> {60}; - 60 -> {61}; - 61 -> {64}; + 59 -> {62}; + 59 -> {60} [style=dotted]; + 60 -> {61} [style=dotted]; 61 -> {62} [style=dotted]; - 62 -> {63} [style=dotted]; - 63 -> {64} [style=dotted]; + + subgraph cluster_22 { + color=red + 63 [label="Enter class QImplWithCustomGetter" style="filled" fillcolor=red]; + 64 [label="Exit class QImplWithCustomGetter" style="filled" fillcolor=red]; + } + 63 -> {64} [color=green]; subgraph cluster_23 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/receivers/implicitReceivers.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/receivers/implicitReceivers.dot index 32cbc91eb03..66c135f46ff 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/receivers/implicitReceivers.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/receivers/implicitReceivers.dot @@ -5,63 +5,63 @@ digraph implicitReceivers_kt { subgraph cluster_0 { color=red - 0 [label="Enter class A" style="filled" fillcolor=red]; - 1 [label="Exit class A" style="filled" fillcolor=red]; + 0 [label="Enter function " style="filled" fillcolor=red]; + 1 [label="Delegated constructor call: super()"]; + 2 [label="Exit function " style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; + 0 -> {1}; + 1 -> {2}; subgraph cluster_1 { color=red - 2 [label="Enter function " style="filled" fillcolor=red]; - 3 [label="Delegated constructor call: super()"]; - 4 [label="Exit function " style="filled" fillcolor=red]; - } - 2 -> {3}; - 3 -> {4}; - - subgraph cluster_2 { - color=red - 5 [label="Enter function foo" style="filled" fillcolor=red]; - subgraph cluster_3 { + 3 [label="Enter function foo" style="filled" fillcolor=red]; + subgraph cluster_2 { color=blue - 6 [label="Enter block"]; - 7 [label="Exit block"]; + 4 [label="Enter block"]; + 5 [label="Exit block"]; } - 8 [label="Exit function foo" style="filled" fillcolor=red]; + 6 [label="Exit function foo" style="filled" fillcolor=red]; } + 3 -> {4}; + 4 -> {5}; 5 -> {6}; - 6 -> {7}; - 7 -> {8}; + + subgraph cluster_3 { + color=red + 7 [label="Enter class A" style="filled" fillcolor=red]; + 8 [label="Exit class A" style="filled" fillcolor=red]; + } + 7 -> {8} [color=green]; subgraph cluster_4 { color=red - 9 [label="Enter class B" style="filled" fillcolor=red]; - 10 [label="Exit class B" style="filled" fillcolor=red]; + 9 [label="Enter function " style="filled" fillcolor=red]; + 10 [label="Delegated constructor call: super()"]; + 11 [label="Exit function " style="filled" fillcolor=red]; } - 9 -> {10} [color=green]; + 9 -> {10}; + 10 -> {11}; subgraph cluster_5 { color=red - 11 [label="Enter function " style="filled" fillcolor=red]; - 12 [label="Delegated constructor call: super()"]; - 13 [label="Exit function " style="filled" fillcolor=red]; - } - 11 -> {12}; - 12 -> {13}; - - subgraph cluster_6 { - color=red - 14 [label="Enter function bar" style="filled" fillcolor=red]; - subgraph cluster_7 { + 12 [label="Enter function bar" style="filled" fillcolor=red]; + subgraph cluster_6 { color=blue - 15 [label="Enter block"]; - 16 [label="Exit block"]; + 13 [label="Enter block"]; + 14 [label="Exit block"]; } - 17 [label="Exit function bar" style="filled" fillcolor=red]; + 15 [label="Exit function bar" style="filled" fillcolor=red]; } + 12 -> {13}; + 13 -> {14}; 14 -> {15}; - 15 -> {16}; - 16 -> {17}; + + subgraph cluster_7 { + color=red + 16 [label="Enter class B" style="filled" fillcolor=red]; + 17 [label="Exit class B" style="filled" fillcolor=red]; + } + 16 -> {17} [color=green]; subgraph cluster_8 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/safeCalls/assignSafeCall.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/safeCalls/assignSafeCall.dot index a98c894cff3..a9361910087 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/safeCalls/assignSafeCall.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/safeCalls/assignSafeCall.dot @@ -5,68 +5,68 @@ digraph assignSafeCall_kt { subgraph cluster_0 { color=red - 0 [label="Enter class A" style="filled" fillcolor=red]; - 1 [label="Part of class initialization"]; - 2 [label="Exit class A" style="filled" fillcolor=red]; + 0 [label="Enter function " style="filled" fillcolor=red]; + 1 [label="Delegated constructor call: super()"]; + 2 [label="Exit function " style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; - 1 -> {2} [style=dotted]; - 1 -> {13} [color=green]; - 1 -> {13} [style=dashed]; + 0 -> {1}; + 1 -> {2}; subgraph cluster_1 { color=red - 3 [label="Enter function " style="filled" fillcolor=red]; - 4 [label="Delegated constructor call: super()"]; - 5 [label="Exit function " style="filled" fillcolor=red]; + 3 [label="Enter function foo" style="filled" fillcolor=red]; + subgraph cluster_2 { + color=blue + 4 [label="Enter block"]; + 5 [label="Const: Int(1)"]; + 6 [label="Jump: ^foo Int(1)"]; + 7 [label="Stub" style="filled" fillcolor=gray]; + 8 [label="Exit block" style="filled" fillcolor=gray]; + } + 9 [label="Exit function foo" style="filled" fillcolor=red]; } 3 -> {4}; 4 -> {5}; + 5 -> {6}; + 6 -> {9}; + 6 -> {7} [style=dotted]; + 7 -> {8} [style=dotted]; + 8 -> {9} [style=dotted]; - subgraph cluster_2 { + subgraph cluster_3 { color=red - 6 [label="Enter function foo" style="filled" fillcolor=red]; - subgraph cluster_3 { - color=blue - 7 [label="Enter block"]; - 8 [label="Const: Int(1)"]; - 9 [label="Jump: ^foo Int(1)"]; - 10 [label="Stub" style="filled" fillcolor=gray]; - 11 [label="Exit block" style="filled" fillcolor=gray]; - } - 12 [label="Exit function foo" style="filled" fillcolor=red]; + 10 [label="Enter property" style="filled" fillcolor=red]; + 11 [label="Const: Int(1)"]; + 12 [label="Exit property" style="filled" fillcolor=red]; } - 6 -> {7}; - 7 -> {8}; - 8 -> {9}; - 9 -> {12}; - 9 -> {10} [style=dotted]; - 10 -> {11} [style=dotted]; - 11 -> {12} [style=dotted]; + 10 -> {11}; + 11 -> {12}; + 12 -> {19} [color=green]; subgraph cluster_4 { color=red - 13 [label="Enter property" style="filled" fillcolor=red]; - 14 [label="Const: Int(1)"]; - 15 [label="Exit property" style="filled" fillcolor=red]; + 13 [label="Enter function bar" style="filled" fillcolor=red]; + subgraph cluster_5 { + color=blue + 14 [label="Enter block"]; + 15 [label="Exit block"]; + } + 16 [label="Exit function bar" style="filled" fillcolor=red]; } 13 -> {14}; 14 -> {15}; - 15 -> {2} [color=green]; + 15 -> {16}; - subgraph cluster_5 { + subgraph cluster_6 { color=red - 16 [label="Enter function bar" style="filled" fillcolor=red]; - subgraph cluster_6 { - color=blue - 17 [label="Enter block"]; - 18 [label="Exit block"]; - } - 19 [label="Exit function bar" style="filled" fillcolor=red]; + 17 [label="Enter class A" style="filled" fillcolor=red]; + 18 [label="Part of class initialization"]; + 19 [label="Exit class A" style="filled" fillcolor=red]; } - 16 -> {17}; - 17 -> {18}; - 18 -> {19}; + 17 -> {18} [color=green]; + 18 -> {19} [style=dotted]; + 18 -> {10} [color=green]; + 18 -> {10} [style=dashed]; subgraph cluster_7 { color=red @@ -233,24 +233,24 @@ digraph assignSafeCall_kt { subgraph cluster_19 { color=red - 83 [label="Enter class B" style="filled" fillcolor=red]; - 84 [label="Exit class B" style="filled" fillcolor=red]; + 83 [label="Enter function foo" style="filled" fillcolor=red]; + 84 [label="Exit function foo" style="filled" fillcolor=red]; } - 83 -> {84} [color=green]; + 83 -> {84}; subgraph cluster_20 { color=red - 85 [label="Enter function foo" style="filled" fillcolor=red]; - 86 [label="Exit function foo" style="filled" fillcolor=red]; + 85 [label="Enter function bar" style="filled" fillcolor=red]; + 86 [label="Exit function bar" style="filled" fillcolor=red]; } 85 -> {86}; subgraph cluster_21 { color=red - 87 [label="Enter function bar" style="filled" fillcolor=red]; - 88 [label="Exit function bar" style="filled" fillcolor=red]; + 87 [label="Enter class B" style="filled" fillcolor=red]; + 88 [label="Exit class B" style="filled" fillcolor=red]; } - 87 -> {88}; + 87 -> {88} [color=green]; subgraph cluster_22 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/safeCalls/safeCalls.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/safeCalls/safeCalls.dot index 05851b67f5e..4d10b62bb44 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/safeCalls/safeCalls.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/safeCalls/safeCalls.dot @@ -74,31 +74,31 @@ digraph safeCalls_kt { subgraph cluster_6 { color=red - 25 [label="Enter class A" style="filled" fillcolor=red]; - 26 [label="Exit class A" style="filled" fillcolor=red]; + 25 [label="Enter function bar" style="filled" fillcolor=red]; + 26 [label="Exit function bar" style="filled" fillcolor=red]; } - 25 -> {26} [color=green]; + 25 -> {26}; subgraph cluster_7 { color=red - 27 [label="Enter function bar" style="filled" fillcolor=red]; - 28 [label="Exit function bar" style="filled" fillcolor=red]; + 27 [label="Enter function bool" style="filled" fillcolor=red]; + 28 [label="Exit function bool" style="filled" fillcolor=red]; } 27 -> {28}; subgraph cluster_8 { color=red - 29 [label="Enter function bool" style="filled" fillcolor=red]; - 30 [label="Exit function bool" style="filled" fillcolor=red]; + 29 [label="Enter function id" style="filled" fillcolor=red]; + 30 [label="Exit function id" style="filled" fillcolor=red]; } 29 -> {30}; subgraph cluster_9 { color=red - 31 [label="Enter function id" style="filled" fillcolor=red]; - 32 [label="Exit function id" style="filled" fillcolor=red]; + 31 [label="Enter class A" style="filled" fillcolor=red]; + 32 [label="Exit class A" style="filled" fillcolor=red]; } - 31 -> {32}; + 31 -> {32} [color=green]; subgraph cluster_10 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/smartCastInInit.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/smartCastInInit.dot index 1c0fb82f8d4..6bbd0506b72 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/smartCastInInit.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/smartCastInInit.dot @@ -12,17 +12,17 @@ digraph smartCastInInit_kt { subgraph cluster_1 { color=red - 2 [label="Enter class S" style="filled" fillcolor=red]; - 3 [label="Exit class S" style="filled" fillcolor=red]; + 2 [label="Enter function foo" style="filled" fillcolor=red]; + 3 [label="Exit function foo" style="filled" fillcolor=red]; } - 2 -> {3} [color=green]; + 2 -> {3}; subgraph cluster_2 { color=red - 4 [label="Enter function foo" style="filled" fillcolor=red]; - 5 [label="Exit function foo" style="filled" fillcolor=red]; + 4 [label="Enter class S" style="filled" fillcolor=red]; + 5 [label="Exit class S" style="filled" fillcolor=red]; } - 4 -> {5}; + 4 -> {5} [color=green]; subgraph cluster_3 { color=red @@ -49,45 +49,45 @@ digraph smartCastInInit_kt { subgraph cluster_5 { color=red - 14 [label="Enter class Main" style="filled" fillcolor=red]; - 15 [label="Part of class initialization"]; - 16 [label="Exit class Main" style="filled" fillcolor=red]; + 14 [label="Enter function " style="filled" fillcolor=red]; + 15 [label="Delegated constructor call: super()"]; + 16 [label="Exit function " style="filled" fillcolor=red]; } - 14 -> {15} [color=green]; - 15 -> {16} [style=dotted]; - 15 -> {20} [color=green]; - 15 -> {20} [style=dashed]; + 14 -> {15}; + 15 -> {16}; subgraph cluster_6 { color=red - 17 [label="Enter function " style="filled" fillcolor=red]; - 18 [label="Delegated constructor call: super()"]; - 19 [label="Exit function " style="filled" fillcolor=red]; + 17 [label="Enter init block" style="filled" fillcolor=red]; + subgraph cluster_7 { + color=blue + 18 [label="Enter block"]; + 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"]; + } + 24 [label="Exit init block" style="filled" fillcolor=red]; } 17 -> {18}; 18 -> {19}; - - subgraph cluster_7 { - color=red - 20 [label="Enter init block" style="filled" fillcolor=red]; - subgraph cluster_8 { - color=blue - 21 [label="Enter block"]; - 22 [label="Function call: R|/s|()"]; - 23 [label="Assignment: R|/Main.x|"]; - 24 [label="Access variable R|/Main.x|"]; - 25 [label="Function call: this@R|/Main|.R|/Main.x|.R|/S.foo|()"]; - 26 [label="Exit block"]; - } - 27 [label="Exit init block" style="filled" fillcolor=red]; - } + 19 -> {20}; 20 -> {21}; 21 -> {22}; 22 -> {23}; 23 -> {24}; - 24 -> {25}; - 25 -> {26}; - 26 -> {27}; - 27 -> {16} [color=green]; + 24 -> {27} [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]; + } + 25 -> {26} [color=green]; + 26 -> {27} [style=dotted]; + 26 -> {17} [color=green]; + 26 -> {17} [style=dashed]; } diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/smartcastToNothing.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/smartcastToNothing.dot index 49d3defc142..563e8bb1102 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/smartcastToNothing.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/smartcastToNothing.dot @@ -116,47 +116,47 @@ digraph smartcastToNothing_kt { subgraph cluster_10 { color=red - 38 [label="Enter class A" style="filled" fillcolor=red]; - 39 [label="Part of class initialization"]; - 40 [label="Part of class initialization"]; - 41 [label="Exit class A" style="filled" fillcolor=red]; + 38 [label="Enter function " style="filled" fillcolor=red]; + 39 [label="Delegated constructor call: super()"]; + 40 [label="Exit function " style="filled" fillcolor=red]; } - 38 -> {39} [color=green]; - 39 -> {40} [style=dotted]; - 39 -> {45} [color=green]; - 39 -> {45} [style=dashed]; - 40 -> {41} [style=dotted]; - 40 -> {48} [color=green]; - 40 -> {48} [style=dashed]; + 38 -> {39}; + 39 -> {40}; subgraph cluster_11 { color=red - 42 [label="Enter function " style="filled" fillcolor=red]; - 43 [label="Delegated constructor call: super()"]; - 44 [label="Exit function " style="filled" fillcolor=red]; + 41 [label="Enter property" style="filled" fillcolor=red]; + 42 [label="Const: Int(1)"]; + 43 [label="Exit property" style="filled" fillcolor=red]; } + 41 -> {42}; 42 -> {43}; - 43 -> {44}; + 43 -> {49} [color=green]; subgraph cluster_12 { color=red - 45 [label="Enter property" style="filled" fillcolor=red]; - 46 [label="Const: Int(1)"]; - 47 [label="Exit property" style="filled" fillcolor=red]; + 44 [label="Enter property" style="filled" fillcolor=red]; + 45 [label="Const: Boolean(true)"]; + 46 [label="Exit property" style="filled" fillcolor=red]; } + 44 -> {45}; 45 -> {46}; - 46 -> {47}; - 47 -> {40} [color=green]; + 46 -> {50} [color=green]; subgraph cluster_13 { color=red - 48 [label="Enter property" style="filled" fillcolor=red]; - 49 [label="Const: Boolean(true)"]; - 50 [label="Exit property" style="filled" fillcolor=red]; + 47 [label="Enter class A" style="filled" fillcolor=red]; + 48 [label="Part of class initialization"]; + 49 [label="Part of class initialization"]; + 50 [label="Exit class A" style="filled" fillcolor=red]; } - 48 -> {49}; - 49 -> {50}; - 50 -> {41} [color=green]; + 47 -> {48} [color=green]; + 48 -> {49} [style=dotted]; + 48 -> {41} [color=green]; + 48 -> {41} [style=dashed]; + 49 -> {50} [style=dotted]; + 49 -> {44} [color=green]; + 49 -> {44} [style=dashed]; subgraph cluster_14 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/stability/overridenOpenVal.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/stability/overridenOpenVal.dot index 9f3cdb8caa6..afa2366ccc0 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/stability/overridenOpenVal.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/stability/overridenOpenVal.dot @@ -5,100 +5,100 @@ digraph overridenOpenVal_kt { subgraph cluster_0 { color=red - 0 [label="Enter class A" style="filled" fillcolor=red]; - 1 [label="Part of class initialization"]; - 2 [label="Exit class A" style="filled" fillcolor=red]; + 0 [label="Enter function " style="filled" fillcolor=red]; + 1 [label="Delegated constructor call: super()"]; + 2 [label="Exit function " style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; - 1 -> {2} [style=dotted]; - 1 -> {6} [color=green]; - 1 -> {6} [style=dashed]; + 0 -> {1}; + 1 -> {2}; subgraph cluster_1 { color=red - 3 [label="Enter function " style="filled" fillcolor=red]; - 4 [label="Delegated constructor call: super()"]; - 5 [label="Exit function " style="filled" fillcolor=red]; + 3 [label="Enter property" style="filled" fillcolor=red]; + 4 [label="Access variable R|/x|"]; + 5 [label="Exit property" style="filled" fillcolor=red]; } 3 -> {4}; 4 -> {5}; + 5 -> {8} [color=green]; subgraph cluster_2 { color=red - 6 [label="Enter property" style="filled" fillcolor=red]; - 7 [label="Access variable R|/x|"]; - 8 [label="Exit property" style="filled" fillcolor=red]; + 6 [label="Enter class A" style="filled" fillcolor=red]; + 7 [label="Part of class initialization"]; + 8 [label="Exit class A" style="filled" fillcolor=red]; } - 6 -> {7}; - 7 -> {8}; - 8 -> {2} [color=green]; + 6 -> {7} [color=green]; + 7 -> {8} [style=dotted]; + 7 -> {3} [color=green]; + 7 -> {3} [style=dashed]; subgraph cluster_3 { color=red - 9 [label="Enter class B" style="filled" fillcolor=red]; - 10 [label="Exit class B" style="filled" fillcolor=red]; + 9 [label="Enter function " style="filled" fillcolor=red]; + 10 [label="Access variable R|/x|"]; + 11 [label="Delegated constructor call: super(...)"]; + 12 [label="Exit function " style="filled" fillcolor=red]; } - 9 -> {10} [color=green]; + 9 -> {10}; + 10 -> {11}; + 11 -> {12}; subgraph cluster_4 { color=red - 11 [label="Enter function " style="filled" fillcolor=red]; - 12 [label="Access variable R|/x|"]; - 13 [label="Delegated constructor call: super(...)"]; - 14 [label="Exit function " style="filled" fillcolor=red]; - } - 11 -> {12}; - 12 -> {13}; - 13 -> {14}; - - subgraph cluster_5 { - color=red - 15 [label="Enter function test_1" style="filled" fillcolor=red]; - subgraph cluster_6 { + 13 [label="Enter function test_1" style="filled" fillcolor=red]; + subgraph cluster_5 { color=blue - 16 [label="Enter block"]; - subgraph cluster_7 { + 14 [label="Enter block"]; + subgraph cluster_6 { color=blue - 17 [label="Enter when"]; + 15 [label="Enter when"]; + subgraph cluster_7 { + color=blue + 16 [label="Enter when branch condition "]; + 17 [label="Access variable R|/A.x|"]; + 18 [label="Type operator: (this@R|/B|.R|/A.x| is R|kotlin/String|)"]; + 19 [label="Exit when branch condition"]; + } + 20 [label="Synthetic else branch"]; + 21 [label="Enter when branch result"]; subgraph cluster_8 { color=blue - 18 [label="Enter when branch condition "]; - 19 [label="Access variable R|/A.x|"]; - 20 [label="Type operator: (this@R|/B|.R|/A.x| is R|kotlin/String|)"]; - 21 [label="Exit when branch condition"]; + 22 [label="Enter block"]; + 23 [label="Access variable R|/A.x|"]; + 24 [label="Access variable R|kotlin/String.length|"]; + 25 [label="Exit block"]; } - 22 [label="Synthetic else branch"]; - 23 [label="Enter when branch result"]; - subgraph cluster_9 { - color=blue - 24 [label="Enter block"]; - 25 [label="Access variable R|/A.x|"]; - 26 [label="Access variable R|kotlin/String.length|"]; - 27 [label="Exit block"]; - } - 28 [label="Exit when branch result"]; - 29 [label="Exit when"]; + 26 [label="Exit when branch result"]; + 27 [label="Exit when"]; } - 30 [label="Exit block"]; + 28 [label="Exit block"]; } - 31 [label="Exit function test_1" style="filled" fillcolor=red]; + 29 [label="Exit function test_1" style="filled" fillcolor=red]; } + 13 -> {14}; + 14 -> {15}; 15 -> {16}; 16 -> {17}; 17 -> {18}; 18 -> {19}; - 19 -> {20}; - 20 -> {21}; - 21 -> {23 22}; - 22 -> {29}; + 19 -> {21 20}; + 20 -> {27}; + 21 -> {22}; + 22 -> {23}; 23 -> {24}; 24 -> {25}; 25 -> {26}; 26 -> {27}; 27 -> {28}; 28 -> {29}; - 29 -> {30}; - 30 -> {31}; + + subgraph cluster_9 { + color=red + 30 [label="Enter class B" style="filled" fillcolor=red]; + 31 [label="Exit class B" style="filled" fillcolor=red]; + } + 30 -> {31} [color=green]; subgraph cluster_10 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/variables/delayedAssignment.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/variables/delayedAssignment.dot index 7ab5f2956dd..fd821650909 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/variables/delayedAssignment.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/variables/delayedAssignment.dot @@ -5,33 +5,33 @@ digraph delayedAssignment_kt { subgraph cluster_0 { color=red - 0 [label="Enter class A" style="filled" fillcolor=red]; - 1 [label="Exit class A" style="filled" fillcolor=red]; + 0 [label="Enter function " style="filled" fillcolor=red]; + 1 [label="Delegated constructor call: super()"]; + 2 [label="Exit function " style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; + 0 -> {1}; + 1 -> {2}; subgraph cluster_1 { color=red - 2 [label="Enter function " style="filled" fillcolor=red]; - 3 [label="Delegated constructor call: super()"]; - 4 [label="Exit function " style="filled" fillcolor=red]; - } - 2 -> {3}; - 3 -> {4}; - - subgraph cluster_2 { - color=red - 5 [label="Enter function foo" style="filled" fillcolor=red]; - subgraph cluster_3 { + 3 [label="Enter function foo" style="filled" fillcolor=red]; + subgraph cluster_2 { color=blue - 6 [label="Enter block"]; - 7 [label="Exit block"]; + 4 [label="Enter block"]; + 5 [label="Exit block"]; } - 8 [label="Exit function foo" style="filled" fillcolor=red]; + 6 [label="Exit function foo" style="filled" fillcolor=red]; } + 3 -> {4}; + 4 -> {5}; 5 -> {6}; - 6 -> {7}; - 7 -> {8}; + + subgraph cluster_3 { + color=red + 7 [label="Enter class A" style="filled" fillcolor=red]; + 8 [label="Exit class A" style="filled" fillcolor=red]; + } + 7 -> {8} [color=green]; subgraph cluster_4 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolveWithStdlib/delegates/delegateWithAnonymousObject.dot b/compiler/fir/analysis-tests/testData/resolveWithStdlib/delegates/delegateWithAnonymousObject.dot index bcd1ab93002..e456129cfe8 100644 --- a/compiler/fir/analysis-tests/testData/resolveWithStdlib/delegates/delegateWithAnonymousObject.dot +++ b/compiler/fir/analysis-tests/testData/resolveWithStdlib/delegates/delegateWithAnonymousObject.dot @@ -5,19 +5,19 @@ digraph delegateWithAnonymousObject_kt { subgraph cluster_0 { color=red - 0 [label="Enter class DelegateProvider" style="filled" fillcolor=red]; - 1 [label="Exit class DelegateProvider" style="filled" fillcolor=red]; + 0 [label="Enter function " style="filled" fillcolor=red]; + 1 [label="Delegated constructor call: super()"]; + 2 [label="Exit function " style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; + 0 -> {1}; + 1 -> {2}; subgraph cluster_1 { color=red - 2 [label="Enter function " style="filled" fillcolor=red]; - 3 [label="Delegated constructor call: super()"]; - 4 [label="Exit function " style="filled" fillcolor=red]; + 3 [label="Enter class DelegateProvider" style="filled" fillcolor=red]; + 4 [label="Exit class DelegateProvider" style="filled" fillcolor=red]; } - 2 -> {3}; - 3 -> {4}; + 3 -> {4} [color=green]; subgraph cluster_2 { color=red @@ -44,206 +44,206 @@ digraph delegateWithAnonymousObject_kt { subgraph cluster_4 { color=red - 13 [label="Enter class IssueListView" style="filled" fillcolor=red]; - 14 [label="Exit class IssueListView" style="filled" fillcolor=red]; + 13 [label="Enter function " style="filled" fillcolor=red]; + 14 [label="Delegated constructor call: super|>()"]; + 15 [label="Exit function " style="filled" fillcolor=red]; } - 13 -> {14} [color=green]; + 13 -> {14}; + 14 -> {15}; subgraph cluster_5 { color=red - 15 [label="Enter function " style="filled" fillcolor=red]; - 16 [label="Delegated constructor call: super|>()"]; - 17 [label="Exit function " style="filled" fillcolor=red]; - } - 15 -> {16}; - 16 -> {17}; - - subgraph cluster_6 { - color=red - 18 [label="Enter function updateFrom" style="filled" fillcolor=red]; - subgraph cluster_7 { + 16 [label="Enter function updateFrom" style="filled" fillcolor=red]; + subgraph cluster_6 { color=blue - 19 [label="Enter block"]; - 20 [label="Exit block"]; + 17 [label="Enter block"]; + 18 [label="Exit block"]; } - 21 [label="Exit function updateFrom" style="filled" fillcolor=red]; + 19 [label="Exit function updateFrom" style="filled" fillcolor=red]; } + 16 -> {17}; + 17 -> {18}; 18 -> {19}; - 19 -> {20}; - 20 -> {21}; + + subgraph cluster_7 { + color=red + 20 [label="Enter class IssueListView" style="filled" fillcolor=red]; + 21 [label="Exit class IssueListView" style="filled" fillcolor=red]; + } + 20 -> {21} [color=green]; subgraph cluster_8 { color=red - 22 [label="Enter class IssuesListUserProfile" style="filled" fillcolor=red]; - 23 [label="Part of class initialization"]; - 24 [label="Exit class IssuesListUserProfile" style="filled" fillcolor=red]; + 22 [label="Enter function " style="filled" fillcolor=red]; + 23 [label="Delegated constructor call: super|>()"]; + 24 [label="Exit function " style="filled" fillcolor=red]; } - 22 -> {23} [color=green]; - 23 -> {24} [style=dotted]; - 23 -> {72} [color=green]; - 23 -> {72} [style=dashed]; + 22 -> {23}; + 23 -> {24}; subgraph cluster_9 { color=red - 25 [label="Enter function " style="filled" fillcolor=red]; - 26 [label="Delegated constructor call: super|>()"]; - 27 [label="Exit function " style="filled" fillcolor=red]; + 33 [label="Enter function " style="filled" fillcolor=red]; + 34 [label="Delegated constructor call: super()"]; + 35 [label="Exit function " style="filled" fillcolor=red]; } - 25 -> {26}; - 26 -> {27}; + 33 -> {34}; + 34 -> {35}; subgraph cluster_10 { color=red - 36 [label="Enter function " style="filled" fillcolor=red]; - 37 [label="Delegated constructor call: super()"]; - 38 [label="Exit function " style="filled" fillcolor=red]; + 36 [label="Enter function getValue" style="filled" fillcolor=red]; + subgraph cluster_11 { + color=blue + 37 [label="Enter block"]; + 38 [label="Function call: R|/IssueListView.IssueListView|()"]; + 39 [label="Jump: ^getValue R|/IssueListView.IssueListView|()"]; + 40 [label="Stub" style="filled" fillcolor=gray]; + 41 [label="Exit block" style="filled" fillcolor=gray]; + } + 42 [label="Exit function getValue" style="filled" fillcolor=red]; } 36 -> {37}; 37 -> {38}; + 38 -> {39}; + 39 -> {42}; + 39 -> {40} [style=dotted]; + 40 -> {41} [style=dotted]; + 41 -> {42} [style=dotted]; - subgraph cluster_11 { + subgraph cluster_12 { color=red - 39 [label="Enter function getValue" style="filled" fillcolor=red]; - subgraph cluster_12 { + 43 [label="Enter function setValue" style="filled" fillcolor=red]; + subgraph cluster_13 { color=blue - 40 [label="Enter block"]; - 41 [label="Function call: R|/IssueListView.IssueListView|()"]; - 42 [label="Jump: ^getValue R|/IssueListView.IssueListView|()"]; - 43 [label="Stub" style="filled" fillcolor=gray]; - 44 [label="Exit block" style="filled" fillcolor=gray]; + 44 [label="Enter block"]; + 45 [label="Function call: R|/IssueListView.IssueListView|()"]; + 46 [label="Access variable R|/value|"]; + 47 [label="Function call: R|/IssueListView.IssueListView|().R|/IssueListView.updateFrom|(...)"]; + 48 [label="Jump: ^setValue R|/IssueListView.IssueListView|().R|/IssueListView.updateFrom|(R|/value|)"]; + 49 [label="Stub" style="filled" fillcolor=gray]; + 50 [label="Exit block" style="filled" fillcolor=gray]; } - 45 [label="Exit function getValue" style="filled" fillcolor=red]; - } - 39 -> {40}; - 40 -> {41}; - 41 -> {42}; - 42 -> {45}; - 42 -> {43} [style=dotted]; - 43 -> {44} [style=dotted]; - 44 -> {45} [style=dotted]; - - subgraph cluster_13 { - color=red - 46 [label="Enter function setValue" style="filled" fillcolor=red]; - subgraph cluster_14 { - color=blue - 47 [label="Enter block"]; - 48 [label="Function call: R|/IssueListView.IssueListView|()"]; - 49 [label="Access variable R|/value|"]; - 50 [label="Function call: R|/IssueListView.IssueListView|().R|/IssueListView.updateFrom|(...)"]; - 51 [label="Jump: ^setValue R|/IssueListView.IssueListView|().R|/IssueListView.updateFrom|(R|/value|)"]; - 52 [label="Stub" style="filled" fillcolor=gray]; - 53 [label="Exit block" style="filled" fillcolor=gray]; - } - 54 [label="Exit function setValue" style="filled" fillcolor=red]; + 51 [label="Exit function setValue" style="filled" fillcolor=red]; } + 43 -> {44}; + 44 -> {45}; + 45 -> {46}; 46 -> {47}; 47 -> {48}; - 48 -> {49}; - 49 -> {50}; - 50 -> {51}; - 51 -> {54}; - 51 -> {52} [style=dotted]; - 52 -> {53} [style=dotted]; - 53 -> {54} [style=dotted]; + 48 -> {51}; + 48 -> {49} [style=dotted]; + 49 -> {50} [style=dotted]; + 50 -> {51} [style=dotted]; - subgraph cluster_15 { + subgraph cluster_14 { color=red - 55 [label="Enter function getter" style="filled" fillcolor=red]; - subgraph cluster_16 { + 52 [label="Enter function getter" style="filled" fillcolor=red]; + subgraph cluster_15 { color=blue - 56 [label="Enter block"]; - 57 [label="Access variable D|/IssuesListUserProfile.issueListView|"]; - 58 [label="Access variable this@R|/IssuesListUserProfile|"]; - 59 [label="Function call: this@R|/IssuesListUserProfile|.D|/IssuesListUserProfile.issueListView|.R|SubstitutionOverride|(...)"]; - 60 [label="Jump: ^ this@R|/IssuesListUserProfile|.D|/IssuesListUserProfile.issueListView|.R|SubstitutionOverride|(this@R|/IssuesListUserProfile|, ::R|/IssuesListUserProfile.issueListView|)"]; - 61 [label="Stub" style="filled" fillcolor=gray]; - 62 [label="Exit block" style="filled" fillcolor=gray]; + 53 [label="Enter block"]; + 54 [label="Access variable D|/IssuesListUserProfile.issueListView|"]; + 55 [label="Access variable this@R|/IssuesListUserProfile|"]; + 56 [label="Function call: this@R|/IssuesListUserProfile|.D|/IssuesListUserProfile.issueListView|.R|SubstitutionOverride|(...)"]; + 57 [label="Jump: ^ this@R|/IssuesListUserProfile|.D|/IssuesListUserProfile.issueListView|.R|SubstitutionOverride|(this@R|/IssuesListUserProfile|, ::R|/IssuesListUserProfile.issueListView|)"]; + 58 [label="Stub" style="filled" fillcolor=gray]; + 59 [label="Exit block" style="filled" fillcolor=gray]; } - 63 [label="Exit function getter" style="filled" fillcolor=red]; + 60 [label="Exit function getter" style="filled" fillcolor=red]; } + 52 -> {53}; + 53 -> {54}; + 54 -> {55}; 55 -> {56}; 56 -> {57}; - 57 -> {58}; - 58 -> {59}; - 59 -> {60}; - 60 -> {63}; - 60 -> {61} [style=dotted]; - 61 -> {62} [style=dotted]; - 62 -> {63} [style=dotted]; + 57 -> {60}; + 57 -> {58} [style=dotted]; + 58 -> {59} [style=dotted]; + 59 -> {60} [style=dotted]; - subgraph cluster_17 { + subgraph cluster_16 { color=red - 64 [label="Enter function setter" style="filled" fillcolor=red]; - subgraph cluster_18 { + 61 [label="Enter function setter" style="filled" fillcolor=red]; + subgraph cluster_17 { color=blue - 65 [label="Enter block"]; - 66 [label="Access variable D|/IssuesListUserProfile.issueListView|"]; - 67 [label="Access variable this@R|/IssuesListUserProfile|"]; - 68 [label="Access variable R|/issueListView|"]; - 69 [label="Function call: this@R|/IssuesListUserProfile|.D|/IssuesListUserProfile.issueListView|.R|SubstitutionOverride|(...)"]; - 70 [label="Exit block"]; + 62 [label="Enter block"]; + 63 [label="Access variable D|/IssuesListUserProfile.issueListView|"]; + 64 [label="Access variable this@R|/IssuesListUserProfile|"]; + 65 [label="Access variable R|/issueListView|"]; + 66 [label="Function call: this@R|/IssuesListUserProfile|.D|/IssuesListUserProfile.issueListView|.R|SubstitutionOverride|(...)"]; + 67 [label="Exit block"]; } - 71 [label="Exit function setter" style="filled" fillcolor=red]; + 68 [label="Exit function setter" style="filled" fillcolor=red]; } + 61 -> {62}; + 62 -> {63}; + 63 -> {64}; 64 -> {65}; 65 -> {66}; 66 -> {67}; 67 -> {68}; - 68 -> {69}; + + subgraph cluster_18 { + color=red + 69 [label="Enter property" style="filled" fillcolor=red]; + 70 [label="Postponed enter to lambda"]; + 71 [label="Postponed exit from lambda"]; + 72 [label="Function call: this@R|/IssuesListUserProfile|.R|/delegate|(...)"]; + 73 [label="Access variable this@R|/IssuesListUserProfile|"]; + 74 [label="Function call: this@R|/IssuesListUserProfile|.R|/delegate|(...).#(...)"]; + 75 [label="Postponed enter to lambda"]; + subgraph cluster_19 { + color=blue + 25 [label="Enter function anonymousFunction" style="filled" fillcolor=red]; + subgraph cluster_20 { + color=blue + 26 [label="Enter block"]; + 27 [label="Exit anonymous object"]; + 28 [label="Exit anonymous object expression"]; + 29 [label="Exit block"]; + } + 30 [label="Exit function anonymousFunction" style="filled" fillcolor=red]; + } + subgraph cluster_21 { + color=blue + 31 [label="Enter class " style="filled" fillcolor=red]; + 32 [label="Exit class " style="filled" fillcolor=red]; + } + 76 [label="Postponed exit from lambda"]; + 77 [label="Function call: this@R|/IssuesListUserProfile|.R|/delegate|(...)"]; + 78 [label="Exit property" style="filled" fillcolor=red]; + } 69 -> {70}; 70 -> {71}; - - subgraph cluster_19 { - color=red - 72 [label="Enter property" style="filled" fillcolor=red]; - 73 [label="Postponed enter to lambda"]; - 74 [label="Postponed exit from lambda"]; - 75 [label="Function call: this@R|/IssuesListUserProfile|.R|/delegate|(...)"]; - 76 [label="Access variable this@R|/IssuesListUserProfile|"]; - 77 [label="Function call: this@R|/IssuesListUserProfile|.R|/delegate|(...).#(...)"]; - 78 [label="Postponed enter to lambda"]; - subgraph cluster_20 { - color=blue - 28 [label="Enter function anonymousFunction" style="filled" fillcolor=red]; - subgraph cluster_21 { - color=blue - 29 [label="Enter block"]; - 30 [label="Exit anonymous object"]; - 31 [label="Exit anonymous object expression"]; - 32 [label="Exit block"]; - } - 33 [label="Exit function anonymousFunction" style="filled" fillcolor=red]; - } - subgraph cluster_22 { - color=blue - 34 [label="Enter class " style="filled" fillcolor=red]; - 35 [label="Exit class " style="filled" fillcolor=red]; - } - 79 [label="Postponed exit from lambda"]; - 80 [label="Function call: this@R|/IssuesListUserProfile|.R|/delegate|(...)"]; - 81 [label="Exit property" style="filled" fillcolor=red]; - } + 70 -> {} [style=dashed]; + 71 -> {72}; 72 -> {73}; 73 -> {74}; - 73 -> {} [style=dashed]; 74 -> {75}; - 75 -> {76}; + 75 -> {76 25}; + 75 -> {25} [style=dashed]; 76 -> {77}; 77 -> {78}; - 78 -> {79 28}; - 78 -> {28} [style=dashed]; - 79 -> {80}; - 80 -> {81}; - 81 -> {24} [color=green]; + 78 -> {81} [color=green]; + 25 -> {26}; + 26 -> {27}; + 26 -> {33 36 43} [color=red]; + 27 -> {28}; + 27 -> {33 36 43 31} [color=green]; + 27 -> {33 36 43 31} [style=dashed]; 28 -> {29}; 29 -> {30}; - 29 -> {36 39 46} [color=red]; - 30 -> {31}; - 30 -> {36 39 46 34} [color=green]; - 30 -> {36 39 46 34} [style=dashed]; - 31 -> {32}; - 32 -> {33}; - 34 -> {35} [color=green]; + 31 -> {32} [color=green]; + + subgraph cluster_22 { + color=red + 79 [label="Enter class IssuesListUserProfile" style="filled" fillcolor=red]; + 80 [label="Part of class initialization"]; + 81 [label="Exit class IssuesListUserProfile" style="filled" fillcolor=red]; + } + 79 -> {80} [color=green]; + 80 -> {81} [style=dotted]; + 80 -> {69} [color=green]; + 80 -> {69} [style=dashed]; } diff --git a/compiler/fir/analysis-tests/testData/resolveWithStdlib/inference/plusAssignWithLambdaInRhs.dot b/compiler/fir/analysis-tests/testData/resolveWithStdlib/inference/plusAssignWithLambdaInRhs.dot index 9c326e494bb..5416aeee98d 100644 --- a/compiler/fir/analysis-tests/testData/resolveWithStdlib/inference/plusAssignWithLambdaInRhs.dot +++ b/compiler/fir/analysis-tests/testData/resolveWithStdlib/inference/plusAssignWithLambdaInRhs.dot @@ -52,33 +52,33 @@ digraph plusAssignWithLambdaInRhs_kt { subgraph cluster_4 { color=red - 16 [label="Enter class A" style="filled" fillcolor=red]; - 17 [label="Part of class initialization"]; - 18 [label="Exit class A" style="filled" fillcolor=red]; + 16 [label="Enter function " style="filled" fillcolor=red]; + 17 [label="Delegated constructor call: super()"]; + 18 [label="Exit function " style="filled" fillcolor=red]; } - 16 -> {17} [color=green]; - 17 -> {18} [style=dotted]; - 17 -> {22} [color=green]; - 17 -> {22} [style=dashed]; + 16 -> {17}; + 17 -> {18}; subgraph cluster_5 { color=red - 19 [label="Enter function " style="filled" fillcolor=red]; - 20 [label="Delegated constructor call: super()"]; - 21 [label="Exit function " style="filled" fillcolor=red]; + 19 [label="Enter property" style="filled" fillcolor=red]; + 20 [label="Access variable R|/executor|"]; + 21 [label="Exit property" style="filled" fillcolor=red]; } 19 -> {20}; 20 -> {21}; + 21 -> {24} [color=green]; subgraph cluster_6 { color=red - 22 [label="Enter property" style="filled" fillcolor=red]; - 23 [label="Access variable R|/executor|"]; - 24 [label="Exit property" style="filled" fillcolor=red]; + 22 [label="Enter class A" style="filled" fillcolor=red]; + 23 [label="Part of class initialization"]; + 24 [label="Exit class A" style="filled" fillcolor=red]; } - 22 -> {23}; - 23 -> {24}; - 24 -> {18} [color=green]; + 22 -> {23} [color=green]; + 23 -> {24} [style=dotted]; + 23 -> {19} [color=green]; + 23 -> {19} [style=dashed]; subgraph cluster_7 { color=red diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirExposedVisibilityDeclarationChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirExposedVisibilityDeclarationChecker.kt index 62c8f677a65..51b7d7d8fd7 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirExposedVisibilityDeclarationChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirExposedVisibilityDeclarationChecker.kt @@ -24,6 +24,7 @@ import org.jetbrains.kotlin.utils.addToStdlib.safeAs object FirExposedVisibilityDeclarationChecker : FirBasicDeclarationChecker() { override fun check(declaration: FirDeclaration<*>, context: CheckerContext, reporter: DiagnosticReporter) { when (declaration) { + is FirAnonymousFunction -> return is FirTypeAlias -> checkTypeAlias(declaration, reporter, context) is FirProperty -> checkProperty(declaration, reporter, context) is FirFunction<*> -> checkFunction(declaration, reporter, context) diff --git a/compiler/testData/codegen/box/smartCasts/kt44814.dot b/compiler/testData/codegen/box/smartCasts/kt44814.dot index dc8f41bccce..b9b39ab61ab 100644 --- a/compiler/testData/codegen/box/smartCasts/kt44814.dot +++ b/compiler/testData/codegen/box/smartCasts/kt44814.dot @@ -5,682 +5,664 @@ digraph kt44814_kt { subgraph cluster_0 { color=red - 0 [label="Enter class FlyweightCapableTreeStructure [1]" style="filled" fillcolor=red]; - 1 [label="Exit class FlyweightCapableTreeStructure [1]" style="filled" fillcolor=red]; + 0 [label="Enter function [2]" style="filled" fillcolor=red]; + 1 [label="Delegated constructor call: super() [2]"]; + 2 [label="Exit function [2]" style="filled" fillcolor=red]; } - 0 -> {1} [color=green]; + 0 -> {1}; + 1 -> {2}; subgraph cluster_1 { color=red - 2 [label="Enter function [2]" style="filled" fillcolor=red]; - 3 [label="Delegated constructor call: super() [2]"]; - 4 [label="Exit function [2]" style="filled" fillcolor=red]; + 3 [label="Enter class FlyweightCapableTreeStructure [1]" style="filled" fillcolor=red]; + 4 [label="Exit class FlyweightCapableTreeStructure [1]" style="filled" fillcolor=red]; } - 2 -> {3}; - 3 -> {4}; + 3 -> {4} [color=green]; subgraph cluster_2 { color=red - 5 [label="Enter class FirSourceElement [1]" style="filled" fillcolor=red]; - 6 [label="Exit class FirSourceElement [1]" style="filled" fillcolor=red]; + 5 [label="Enter function [2]" style="filled" fillcolor=red]; + 6 [label="Delegated constructor call: super() [2]"]; + 7 [label="Exit function [2]" style="filled" fillcolor=red]; } - 5 -> {6} [color=green]; + 5 -> {6}; + 6 -> {7}; subgraph cluster_3 { color=red - 7 [label="Enter function [2]" style="filled" fillcolor=red]; - 8 [label="Delegated constructor call: super() [2]"]; - 9 [label="Exit function [2]" style="filled" fillcolor=red]; + 8 [label="Enter class FirSourceElement [1]" style="filled" fillcolor=red]; + 9 [label="Exit class FirSourceElement [1]" style="filled" fillcolor=red]; } - 7 -> {8}; - 8 -> {9}; + 8 -> {9} [color=green]; subgraph cluster_4 { color=red - 10 [label="Enter class FirPsiSourceElement [1]" style="filled" fillcolor=red]; - 11 [label="Part of class initialization [1]"]; - 12 [label="Part of class initialization [1]"]; - 13 [label="Part of class initialization [1]"]; - 14 [label="Exit class FirPsiSourceElement [1]" style="filled" fillcolor=red]; + 10 [label="Enter function [2]" style="filled" fillcolor=red]; + 11 [label="Delegated constructor call: super() [2]"]; + 12 [label="Exit function [2]" style="filled" fillcolor=red]; } - 10 -> {11} [color=green]; - 11 -> {12} [style=dotted]; - 11 -> {18} [color=green]; - 11 -> {18} [style=dashed]; - 12 -> {13} [style=dotted]; - 12 -> {21} [color=green]; - 12 -> {21} [style=dashed]; - 13 -> {14} [style=dotted]; - 13 -> {24} [color=green]; - 13 -> {24} [style=dashed]; + 10 -> {11}; + 11 -> {12}; subgraph cluster_5 { color=red - 15 [label="Enter function [2]" style="filled" fillcolor=red]; - 16 [label="Delegated constructor call: super() [2]"]; - 17 [label="Exit function [2]" style="filled" fillcolor=red]; + 13 [label="Enter property [2]" style="filled" fillcolor=red]; + 14 [label="Access variable R|/psi| [2]"]; + 15 [label="Exit property [2]" style="filled" fillcolor=red]; } - 15 -> {16}; - 16 -> {17}; + 13 -> {14}; + 14 -> {15}; + 15 -> {24} [color=green]; subgraph cluster_6 { color=red - 18 [label="Enter property [2]" style="filled" fillcolor=red]; - 19 [label="Access variable R|/psi| [2]"]; - 20 [label="Exit property [2]" style="filled" fillcolor=red]; + 16 [label="Enter property [2]" style="filled" fillcolor=red]; + 17 [label="Access variable R|/lighterASTNode| [2]"]; + 18 [label="Exit property [2]" style="filled" fillcolor=red]; } - 18 -> {19}; - 19 -> {20}; - 20 -> {12} [color=green]; + 16 -> {17}; + 17 -> {18}; + 18 -> {25} [color=green]; subgraph cluster_7 { color=red - 21 [label="Enter property [2]" style="filled" fillcolor=red]; - 22 [label="Access variable R|/lighterASTNode| [2]"]; - 23 [label="Exit property [2]" style="filled" fillcolor=red]; + 19 [label="Enter property [2]" style="filled" fillcolor=red]; + 20 [label="Access variable R|/treeStructure| [2]"]; + 21 [label="Exit property [2]" style="filled" fillcolor=red]; } - 21 -> {22}; - 22 -> {23}; - 23 -> {13} [color=green]; + 19 -> {20}; + 20 -> {21}; + 21 -> {26} [color=green]; subgraph cluster_8 { color=red - 24 [label="Enter property [2]" style="filled" fillcolor=red]; - 25 [label="Access variable R|/treeStructure| [2]"]; - 26 [label="Exit property [2]" style="filled" fillcolor=red]; + 22 [label="Enter class FirPsiSourceElement [1]" style="filled" fillcolor=red]; + 23 [label="Part of class initialization [1]"]; + 24 [label="Part of class initialization [1]"]; + 25 [label="Part of class initialization [1]"]; + 26 [label="Exit class FirPsiSourceElement [1]" style="filled" fillcolor=red]; } - 24 -> {25}; - 25 -> {26}; - 26 -> {14} [color=green]; + 22 -> {23} [color=green]; + 23 -> {24} [style=dotted]; + 23 -> {13} [color=green]; + 23 -> {13} [style=dashed]; + 24 -> {25} [style=dotted]; + 24 -> {16} [color=green]; + 24 -> {16} [style=dashed]; + 25 -> {26} [style=dotted]; + 25 -> {19} [color=green]; + 25 -> {19} [style=dashed]; subgraph cluster_9 { color=red - 27 [label="Enter class FirLightSourceElement [1]" style="filled" fillcolor=red]; - 28 [label="Part of class initialization [1]"]; - 29 [label="Part of class initialization [1]"]; - 30 [label="Exit class FirLightSourceElement [1]" style="filled" fillcolor=red]; + 27 [label="Enter function [2]" style="filled" fillcolor=red]; + 28 [label="Delegated constructor call: super() [2]"]; + 29 [label="Exit function [2]" style="filled" fillcolor=red]; } - 27 -> {28} [color=green]; - 28 -> {29} [style=dotted]; - 28 -> {34} [color=green]; - 28 -> {34} [style=dashed]; - 29 -> {30} [style=dotted]; - 29 -> {37} [color=green]; - 29 -> {37} [style=dashed]; + 27 -> {28}; + 28 -> {29}; subgraph cluster_10 { color=red - 31 [label="Enter function [2]" style="filled" fillcolor=red]; - 32 [label="Delegated constructor call: super() [2]"]; - 33 [label="Exit function [2]" style="filled" fillcolor=red]; + 30 [label="Enter property [2]" style="filled" fillcolor=red]; + 31 [label="Access variable R|/lighterASTNode| [2]"]; + 32 [label="Exit property [2]" style="filled" fillcolor=red]; } + 30 -> {31}; 31 -> {32}; - 32 -> {33}; + 32 -> {38} [color=green]; subgraph cluster_11 { color=red - 34 [label="Enter property [2]" style="filled" fillcolor=red]; - 35 [label="Access variable R|/lighterASTNode| [2]"]; - 36 [label="Exit property [2]" style="filled" fillcolor=red]; + 33 [label="Enter property [2]" style="filled" fillcolor=red]; + 34 [label="Access variable R|/treeStructure| [2]"]; + 35 [label="Exit property [2]" style="filled" fillcolor=red]; } + 33 -> {34}; 34 -> {35}; - 35 -> {36}; - 36 -> {29} [color=green]; + 35 -> {39} [color=green]; subgraph cluster_12 { color=red - 37 [label="Enter property [2]" style="filled" fillcolor=red]; - 38 [label="Access variable R|/treeStructure| [2]"]; - 39 [label="Exit property [2]" style="filled" fillcolor=red]; + 36 [label="Enter class FirLightSourceElement [1]" style="filled" fillcolor=red]; + 37 [label="Part of class initialization [1]"]; + 38 [label="Part of class initialization [1]"]; + 39 [label="Exit class FirLightSourceElement [1]" style="filled" fillcolor=red]; } - 37 -> {38}; - 38 -> {39}; - 39 -> {30} [color=green]; + 36 -> {37} [color=green]; + 37 -> {38} [style=dotted]; + 37 -> {30} [color=green]; + 37 -> {30} [style=dashed]; + 38 -> {39} [style=dotted]; + 38 -> {33} [color=green]; + 38 -> {33} [style=dashed]; subgraph cluster_13 { color=red - 40 [label="Enter class PsiElement [1]" style="filled" fillcolor=red]; - 41 [label="Exit class PsiElement [1]" style="filled" fillcolor=red]; + 40 [label="Enter function [2]" style="filled" fillcolor=red]; + 41 [label="Delegated constructor call: super() [2]"]; + 42 [label="Exit function [2]" style="filled" fillcolor=red]; } - 40 -> {41} [color=green]; + 40 -> {41}; + 41 -> {42}; subgraph cluster_14 { color=red - 42 [label="Enter function [2]" style="filled" fillcolor=red]; - 43 [label="Delegated constructor call: super() [2]"]; - 44 [label="Exit function [2]" style="filled" fillcolor=red]; + 43 [label="Enter class PsiElement [1]" style="filled" fillcolor=red]; + 44 [label="Exit class PsiElement [1]" style="filled" fillcolor=red]; } - 42 -> {43}; - 43 -> {44}; + 43 -> {44} [color=green]; subgraph cluster_15 { color=red - 45 [label="Enter class ASTNode [1]" style="filled" fillcolor=red]; - 46 [label="Exit class ASTNode [1]" style="filled" fillcolor=red]; + 45 [label="Enter function [2]" style="filled" fillcolor=red]; + 46 [label="Delegated constructor call: super() [2]"]; + 47 [label="Exit function [2]" style="filled" fillcolor=red]; } - 45 -> {46} [color=green]; + 45 -> {46}; + 46 -> {47}; subgraph cluster_16 { color=red - 47 [label="Enter function [2]" style="filled" fillcolor=red]; - 48 [label="Delegated constructor call: super() [2]"]; - 49 [label="Exit function [2]" style="filled" fillcolor=red]; + 48 [label="Enter class ASTNode [1]" style="filled" fillcolor=red]; + 49 [label="Exit class ASTNode [1]" style="filled" fillcolor=red]; } - 47 -> {48}; - 48 -> {49}; + 48 -> {49} [color=green]; subgraph cluster_17 { color=red - 50 [label="Enter class LighterASTNode [1]" style="filled" fillcolor=red]; - 51 [label="Part of class initialization [1]"]; - 52 [label="Part of class initialization [1]"]; - 53 [label="Exit class LighterASTNode [1]" style="filled" fillcolor=red]; - } - 50 -> {51} [color=green]; - 51 -> {52} [style=dotted]; - 51 -> {60} [color=green]; - 51 -> {60} [style=dashed]; - 52 -> {53} [style=dotted]; - 52 -> {70} [color=green]; - 52 -> {70} [style=dashed]; - - subgraph cluster_18 { - color=red - 54 [label="Enter function [2]" style="filled" fillcolor=red]; - subgraph cluster_19 { + 50 [label="Enter function [2]" style="filled" fillcolor=red]; + subgraph cluster_18 { color=blue - 57 [label="Enter default value of _children [3]" style="filled" fillcolor=red]; - 58 [label="Function call: R|kotlin/collections/emptyList|() [3]"]; - 59 [label="Exit default value of _children [3]" style="filled" fillcolor=red]; + 53 [label="Enter default value of _children [3]" style="filled" fillcolor=red]; + 54 [label="Function call: R|kotlin/collections/emptyList|() [3]"]; + 55 [label="Exit default value of _children [3]" style="filled" fillcolor=red]; } - 55 [label="Delegated constructor call: super() [2]"]; - 56 [label="Exit function [2]" style="filled" fillcolor=red]; + 51 [label="Delegated constructor call: super() [2]"]; + 52 [label="Exit function [2]" style="filled" fillcolor=red]; } - 54 -> {57 55}; - 55 -> {56}; + 50 -> {53 51}; + 51 -> {52}; + 53 -> {54}; + 53 -> {53} [style=dashed]; + 54 -> {55}; + + subgraph cluster_19 { + color=red + 56 [label="Enter property [2]" style="filled" fillcolor=red]; + 57 [label="Access variable R|/_children| [2]"]; + 58 [label="Exit property [2]" style="filled" fillcolor=red]; + } + 56 -> {57}; 57 -> {58}; - 57 -> {57} [style=dashed]; - 58 -> {59}; + 58 -> {72} [color=green]; subgraph cluster_20 { color=red - 60 [label="Enter property [2]" style="filled" fillcolor=red]; - 61 [label="Access variable R|/_children| [2]"]; - 62 [label="Exit property [2]" style="filled" fillcolor=red]; + 59 [label="Enter function getChildren [2]" style="filled" fillcolor=red]; + subgraph cluster_21 { + color=blue + 60 [label="Enter block [2]"]; + 61 [label="Access variable R|/LighterASTNode._children| [2]"]; + 62 [label="Jump: ^getChildren this@R|/LighterASTNode|.R|/LighterASTNode._children| [2]"]; + 63 [label="Stub [2]" style="filled" fillcolor=gray]; + 64 [label="Exit block [2]" style="filled" fillcolor=gray]; + } + 65 [label="Exit function getChildren [2]" style="filled" fillcolor=red]; } + 59 -> {60}; 60 -> {61}; 61 -> {62}; - 62 -> {52} [color=green]; + 62 -> {65}; + 62 -> {63} [style=dotted]; + 63 -> {64} [style=dotted]; + 64 -> {65} [style=dotted]; - subgraph cluster_21 { + subgraph cluster_22 { color=red - 63 [label="Enter function getChildren [2]" style="filled" fillcolor=red]; - subgraph cluster_22 { - color=blue - 64 [label="Enter block [2]"]; - 65 [label="Access variable R|/LighterASTNode._children| [2]"]; - 66 [label="Jump: ^getChildren this@R|/LighterASTNode|.R|/LighterASTNode._children| [2]"]; - 67 [label="Stub [2]" style="filled" fillcolor=gray]; - 68 [label="Exit block [2]" style="filled" fillcolor=gray]; - } - 69 [label="Exit function getChildren [2]" style="filled" fillcolor=red]; + 66 [label="Enter property [2]" style="filled" fillcolor=red]; + 67 [label="Access qualifier /TokenType [2]"]; + 68 [label="Access variable R|/TokenType.Companion.MODIFIER_LIST| [2]"]; + 69 [label="Exit property [2]" style="filled" fillcolor=red]; } - 63 -> {64}; - 64 -> {65}; - 65 -> {66}; - 66 -> {69}; - 66 -> {67} [style=dotted]; - 67 -> {68} [style=dotted]; - 68 -> {69} [style=dotted]; + 66 -> {67}; + 67 -> {68}; + 68 -> {69}; + 69 -> {73} [color=green]; subgraph cluster_23 { color=red - 70 [label="Enter property [2]" style="filled" fillcolor=red]; - 71 [label="Access qualifier /TokenType [2]"]; - 72 [label="Access variable R|/TokenType.Companion.MODIFIER_LIST| [2]"]; - 73 [label="Exit property [2]" style="filled" fillcolor=red]; + 70 [label="Enter class LighterASTNode [1]" style="filled" fillcolor=red]; + 71 [label="Part of class initialization [1]"]; + 72 [label="Part of class initialization [1]"]; + 73 [label="Exit class LighterASTNode [1]" style="filled" fillcolor=red]; } - 70 -> {71}; - 71 -> {72}; - 72 -> {73}; - 73 -> {53} [color=green]; + 70 -> {71} [color=green]; + 71 -> {72} [style=dotted]; + 71 -> {56} [color=green]; + 71 -> {56} [style=dashed]; + 72 -> {73} [style=dotted]; + 72 -> {66} [color=green]; + 72 -> {66} [style=dashed]; subgraph cluster_24 { color=red - 74 [label="Enter class TokenType [1]" style="filled" fillcolor=red]; - 75 [label="Exit class TokenType [1]" style="filled" fillcolor=red]; + 74 [label="Enter function [2]" style="filled" fillcolor=red]; + 75 [label="Delegated constructor call: super() [2]"]; + 76 [label="Exit function [2]" style="filled" fillcolor=red]; } - 74 -> {75} [color=green]; + 74 -> {75}; + 75 -> {76}; subgraph cluster_25 { color=red - 76 [label="Enter function [2]" style="filled" fillcolor=red]; - 77 [label="Delegated constructor call: super() [2]"]; - 78 [label="Exit function [2]" style="filled" fillcolor=red]; + 77 [label="Enter function [3]" style="filled" fillcolor=red]; + 78 [label="Delegated constructor call: super() [3]"]; + 79 [label="Exit function [3]" style="filled" fillcolor=red]; } - 76 -> {77}; 77 -> {78}; + 78 -> {79}; subgraph cluster_26 { color=red - 79 [label="Enter class Companion [2]" style="filled" fillcolor=red]; - 80 [label="Part of class initialization [2]"]; - 81 [label="Exit class Companion [2]" style="filled" fillcolor=red]; + 80 [label="Enter property [3]" style="filled" fillcolor=red]; + 81 [label="Function call: R|/TokenType.TokenType|() [3]"]; + 82 [label="Exit property [3]" style="filled" fillcolor=red]; } - 79 -> {80} [color=green]; - 80 -> {81} [style=dotted]; - 80 -> {85} [color=green]; - 80 -> {85} [style=dashed]; + 80 -> {81}; + 81 -> {82}; + 82 -> {85} [color=green]; subgraph cluster_27 { color=red - 82 [label="Enter function [3]" style="filled" fillcolor=red]; - 83 [label="Delegated constructor call: super() [3]"]; - 84 [label="Exit function [3]" style="filled" fillcolor=red]; + 83 [label="Enter class Companion [2]" style="filled" fillcolor=red]; + 84 [label="Part of class initialization [2]"]; + 85 [label="Exit class Companion [2]" style="filled" fillcolor=red]; } - 82 -> {83}; - 83 -> {84}; + 83 -> {84} [color=green]; + 84 -> {85} [style=dotted]; + 84 -> {80} [color=green]; + 84 -> {80} [style=dashed]; subgraph cluster_28 { color=red - 85 [label="Enter property [3]" style="filled" fillcolor=red]; - 86 [label="Function call: R|/TokenType.TokenType|() [3]"]; - 87 [label="Exit property [3]" style="filled" fillcolor=red]; + 86 [label="Enter class TokenType [1]" style="filled" fillcolor=red]; + 87 [label="Exit class TokenType [1]" style="filled" fillcolor=red]; } - 85 -> {86}; - 86 -> {87}; - 87 -> {81} [color=green]; + 86 -> {87} [color=green]; subgraph cluster_29 { color=red - 88 [label="Enter class KtModifierKeywordToken [1]" style="filled" fillcolor=red]; - 89 [label="Exit class KtModifierKeywordToken [1]" style="filled" fillcolor=red]; + 88 [label="Enter function [2]" style="filled" fillcolor=red]; + 89 [label="Delegated constructor call: super() [2]"]; + 90 [label="Exit function [2]" style="filled" fillcolor=red]; } - 88 -> {89} [color=green]; + 88 -> {89}; + 89 -> {90}; subgraph cluster_30 { color=red - 90 [label="Enter function [2]" style="filled" fillcolor=red]; - 91 [label="Delegated constructor call: super() [2]"]; - 92 [label="Exit function [2]" style="filled" fillcolor=red]; + 91 [label="Enter class KtModifierKeywordToken [1]" style="filled" fillcolor=red]; + 92 [label="Exit class KtModifierKeywordToken [1]" style="filled" fillcolor=red]; } - 90 -> {91}; - 91 -> {92}; + 91 -> {92} [color=green]; subgraph cluster_31 { color=red - 93 [label="Enter class KtModifierList [1]" style="filled" fillcolor=red]; - 94 [label="Exit class KtModifierList [1]" style="filled" fillcolor=red]; + 93 [label="Enter function [2]" style="filled" fillcolor=red]; + 94 [label="Delegated constructor call: super() [2]"]; + 95 [label="Exit function [2]" style="filled" fillcolor=red]; } - 93 -> {94} [color=green]; + 93 -> {94}; + 94 -> {95}; subgraph cluster_32 { color=red - 95 [label="Enter function [2]" style="filled" fillcolor=red]; - 96 [label="Delegated constructor call: super() [2]"]; - 97 [label="Exit function [2]" style="filled" fillcolor=red]; + 96 [label="Enter class KtModifierList [1]" style="filled" fillcolor=red]; + 97 [label="Exit class KtModifierList [1]" style="filled" fillcolor=red]; } - 95 -> {96}; - 96 -> {97}; + 96 -> {97} [color=green]; subgraph cluster_33 { color=red - 98 [label="Enter class KtModifierListOwner [1]" style="filled" fillcolor=red]; - 99 [label="Part of class initialization [1]"]; - 100 [label="Exit class KtModifierListOwner [1]" style="filled" fillcolor=red]; + 98 [label="Enter function [2]" style="filled" fillcolor=red]; + 99 [label="Delegated constructor call: super() [2]"]; + 100 [label="Exit function [2]" style="filled" fillcolor=red]; } - 98 -> {99} [color=green]; - 99 -> {100} [style=dotted]; - 99 -> {104} [color=green]; - 99 -> {104} [style=dashed]; + 98 -> {99}; + 99 -> {100}; subgraph cluster_34 { color=red - 101 [label="Enter function [2]" style="filled" fillcolor=red]; - 102 [label="Delegated constructor call: super() [2]"]; - 103 [label="Exit function [2]" style="filled" fillcolor=red]; + 101 [label="Enter property [2]" style="filled" fillcolor=red]; + 102 [label="Function call: R|/KtModifierList.KtModifierList|() [2]"]; + 103 [label="Exit property [2]" style="filled" fillcolor=red]; } 101 -> {102}; 102 -> {103}; + 103 -> {106} [color=green]; subgraph cluster_35 { color=red - 104 [label="Enter property [2]" style="filled" fillcolor=red]; - 105 [label="Function call: R|/KtModifierList.KtModifierList|() [2]"]; - 106 [label="Exit property [2]" style="filled" fillcolor=red]; + 104 [label="Enter class KtModifierListOwner [1]" style="filled" fillcolor=red]; + 105 [label="Part of class initialization [1]"]; + 106 [label="Exit class KtModifierListOwner [1]" style="filled" fillcolor=red]; } - 104 -> {105}; - 105 -> {106}; - 106 -> {100} [color=green]; + 104 -> {105} [color=green]; + 105 -> {106} [style=dotted]; + 105 -> {101} [color=green]; + 105 -> {101} [style=dashed]; subgraph cluster_36 { color=red - 107 [label="Enter class FirModifier [1]" style="filled" fillcolor=red]; - 108 [label="Part of class initialization [1]"]; - 109 [label="Part of class initialization [1]"]; - 110 [label="Exit class FirModifier [1]" style="filled" fillcolor=red]; + 107 [label="Enter function [2]" style="filled" fillcolor=red]; + 108 [label="Delegated constructor call: super() [2]"]; + 109 [label="Exit function [2]" style="filled" fillcolor=red]; } - 107 -> {108} [color=green]; - 108 -> {109} [style=dotted]; - 108 -> {114} [color=green]; - 108 -> {114} [style=dashed]; - 109 -> {110} [style=dotted]; - 109 -> {117} [color=green]; - 109 -> {117} [style=dashed]; + 107 -> {108}; + 108 -> {109}; subgraph cluster_37 { color=red - 111 [label="Enter function [2]" style="filled" fillcolor=red]; - 112 [label="Delegated constructor call: super() [2]"]; - 113 [label="Exit function [2]" style="filled" fillcolor=red]; + 110 [label="Enter property [2]" style="filled" fillcolor=red]; + 111 [label="Access variable R|/node| [2]"]; + 112 [label="Exit property [2]" style="filled" fillcolor=red]; } + 110 -> {111}; 111 -> {112}; - 112 -> {113}; + 112 -> {136} [color=green]; subgraph cluster_38 { color=red - 114 [label="Enter property [2]" style="filled" fillcolor=red]; - 115 [label="Access variable R|/node| [2]"]; - 116 [label="Exit property [2]" style="filled" fillcolor=red]; + 113 [label="Enter property [2]" style="filled" fillcolor=red]; + 114 [label="Access variable R|/token| [2]"]; + 115 [label="Exit property [2]" style="filled" fillcolor=red]; } + 113 -> {114}; 114 -> {115}; - 115 -> {116}; - 116 -> {109} [color=green]; + 115 -> {137} [color=green]; subgraph cluster_39 { color=red - 117 [label="Enter property [2]" style="filled" fillcolor=red]; - 118 [label="Access variable R|/token| [2]"]; - 119 [label="Exit property [2]" style="filled" fillcolor=red]; + 116 [label="Enter function [3]" style="filled" fillcolor=red]; + 117 [label="Access variable R|/node| [4]"]; + 118 [label="Access variable R|/token| [4]"]; + 119 [label="Delegated constructor call: super|>(...) [3]"]; + 120 [label="Exit function [3]" style="filled" fillcolor=red]; } + 116 -> {117}; 117 -> {118}; 118 -> {119}; - 119 -> {110} [color=green]; + 119 -> {120}; subgraph cluster_40 { color=red - 120 [label="Enter class FirPsiModifier [2]" style="filled" fillcolor=red]; - 121 [label="Exit class FirPsiModifier [2]" style="filled" fillcolor=red]; + 121 [label="Enter class FirPsiModifier [2]" style="filled" fillcolor=red]; + 122 [label="Exit class FirPsiModifier [2]" style="filled" fillcolor=red]; } - 120 -> {121} [color=green]; + 121 -> {122} [color=green]; subgraph cluster_41 { color=red - 122 [label="Enter function [3]" style="filled" fillcolor=red]; - 123 [label="Access variable R|/node| [4]"]; - 124 [label="Access variable R|/token| [4]"]; - 125 [label="Delegated constructor call: super|>(...) [3]"]; - 126 [label="Exit function [3]" style="filled" fillcolor=red]; + 123 [label="Enter function [3]" style="filled" fillcolor=red]; + 124 [label="Access variable R|/node| [4]"]; + 125 [label="Access variable R|/token| [4]"]; + 126 [label="Delegated constructor call: super|>(...) [3]"]; + 127 [label="Exit function [3]" style="filled" fillcolor=red]; } - 122 -> {123}; 123 -> {124}; 124 -> {125}; 125 -> {126}; + 126 -> {127}; subgraph cluster_42 { color=red - 127 [label="Enter class FirLightModifier [2]" style="filled" fillcolor=red]; - 128 [label="Part of class initialization [2]"]; - 129 [label="Exit class FirLightModifier [2]" style="filled" fillcolor=red]; + 128 [label="Enter property [3]" style="filled" fillcolor=red]; + 129 [label="Access variable R|/tree| [3]"]; + 130 [label="Exit property [3]" style="filled" fillcolor=red]; } - 127 -> {128} [color=green]; - 128 -> {129} [style=dotted]; - 128 -> {135} [color=green]; - 128 -> {135} [style=dashed]; + 128 -> {129}; + 129 -> {130}; + 130 -> {133} [color=green]; subgraph cluster_43 { color=red - 130 [label="Enter function [3]" style="filled" fillcolor=red]; - 131 [label="Access variable R|/node| [4]"]; - 132 [label="Access variable R|/token| [4]"]; - 133 [label="Delegated constructor call: super|>(...) [3]"]; - 134 [label="Exit function [3]" style="filled" fillcolor=red]; + 131 [label="Enter class FirLightModifier [2]" style="filled" fillcolor=red]; + 132 [label="Part of class initialization [2]"]; + 133 [label="Exit class FirLightModifier [2]" style="filled" fillcolor=red]; } - 130 -> {131}; - 131 -> {132}; - 132 -> {133}; - 133 -> {134}; + 131 -> {132} [color=green]; + 132 -> {133} [style=dotted]; + 132 -> {128} [color=green]; + 132 -> {128} [style=dashed]; subgraph cluster_44 { color=red - 135 [label="Enter property [3]" style="filled" fillcolor=red]; - 136 [label="Access variable R|/tree| [3]"]; - 137 [label="Exit property [3]" style="filled" fillcolor=red]; + 134 [label="Enter class FirModifier [1]" style="filled" fillcolor=red]; + 135 [label="Part of class initialization [1]"]; + 136 [label="Part of class initialization [1]"]; + 137 [label="Exit class FirModifier [1]" style="filled" fillcolor=red]; } - 135 -> {136}; - 136 -> {137}; - 137 -> {129} [color=green]; + 134 -> {135} [color=green]; + 135 -> {136} [style=dotted]; + 135 -> {110} [color=green]; + 135 -> {110} [style=dashed]; + 136 -> {137} [style=dotted]; + 136 -> {113} [color=green]; + 136 -> {113} [style=dashed]; subgraph cluster_45 { color=red - 138 [label="Enter class FirModifierList [1]" style="filled" fillcolor=red]; - 139 [label="Part of class initialization [1]"]; - 140 [label="Exit class FirModifierList [1]" style="filled" fillcolor=red]; + 138 [label="Enter function [2]" style="filled" fillcolor=red]; + 139 [label="Delegated constructor call: super() [2]"]; + 140 [label="Exit function [2]" style="filled" fillcolor=red]; } - 138 -> {139} [color=green]; - 139 -> {140} [style=dotted]; - 139 -> {144} [color=green]; - 139 -> {144} [style=dashed]; + 138 -> {139}; + 139 -> {140}; subgraph cluster_46 { color=red - 141 [label="Enter function [2]" style="filled" fillcolor=red]; - 142 [label="Delegated constructor call: super() [2]"]; - 143 [label="Exit function [2]" style="filled" fillcolor=red]; + 141 [label="Enter property [2]" style="filled" fillcolor=red]; + 142 [label="Function call: R|kotlin/collections/emptyList||>() [2]"]; + 143 [label="Exit property [2]" style="filled" fillcolor=red]; } 141 -> {142}; 142 -> {143}; + 143 -> {282} [color=green]; subgraph cluster_47 { color=red - 144 [label="Enter property [2]" style="filled" fillcolor=red]; - 145 [label="Function call: R|kotlin/collections/emptyList||>() [2]"]; - 146 [label="Exit property [2]" style="filled" fillcolor=red]; + 144 [label="Enter function [3]" style="filled" fillcolor=red]; + 145 [label="Delegated constructor call: super() [3]"]; + 146 [label="Exit function [3]" style="filled" fillcolor=red]; } 144 -> {145}; 145 -> {146}; - 146 -> {140} [color=green]; subgraph cluster_48 { color=red - 147 [label="Enter class FirPsiModifierList [2]" style="filled" fillcolor=red]; - 148 [label="Part of class initialization [2]"]; - 149 [label="Exit class FirPsiModifierList [2]" style="filled" fillcolor=red]; + 147 [label="Enter property [3]" style="filled" fillcolor=red]; + 148 [label="Access variable R|/modifierList| [3]"]; + 149 [label="Exit property [3]" style="filled" fillcolor=red]; } - 147 -> {148} [color=green]; - 148 -> {149} [style=dotted]; - 148 -> {153} [color=green]; - 148 -> {153} [style=dashed]; + 147 -> {148}; + 148 -> {149}; + 149 -> {152} [color=green]; subgraph cluster_49 { color=red - 150 [label="Enter function [3]" style="filled" fillcolor=red]; - 151 [label="Delegated constructor call: super() [3]"]; - 152 [label="Exit function [3]" style="filled" fillcolor=red]; + 150 [label="Enter class FirPsiModifierList [2]" style="filled" fillcolor=red]; + 151 [label="Part of class initialization [2]"]; + 152 [label="Exit class FirPsiModifierList [2]" style="filled" fillcolor=red]; } - 150 -> {151}; - 151 -> {152}; + 150 -> {151} [color=green]; + 151 -> {152} [style=dotted]; + 151 -> {147} [color=green]; + 151 -> {147} [style=dashed]; subgraph cluster_50 { color=red - 153 [label="Enter property [3]" style="filled" fillcolor=red]; - 154 [label="Access variable R|/modifierList| [3]"]; - 155 [label="Exit property [3]" style="filled" fillcolor=red]; + 153 [label="Enter function [3]" style="filled" fillcolor=red]; + 154 [label="Delegated constructor call: super() [3]"]; + 155 [label="Exit function [3]" style="filled" fillcolor=red]; } 153 -> {154}; 154 -> {155}; - 155 -> {149} [color=green]; subgraph cluster_51 { color=red - 156 [label="Enter class FirLightModifierList [2]" style="filled" fillcolor=red]; - 157 [label="Part of class initialization [2]"]; - 158 [label="Part of class initialization [2]"]; - 159 [label="Exit class FirLightModifierList [2]" style="filled" fillcolor=red]; + 156 [label="Enter property [3]" style="filled" fillcolor=red]; + 157 [label="Access variable R|/modifierList| [3]"]; + 158 [label="Exit property [3]" style="filled" fillcolor=red]; } - 156 -> {157} [color=green]; - 157 -> {158} [style=dotted]; - 157 -> {163} [color=green]; - 157 -> {163} [style=dashed]; - 158 -> {159} [style=dotted]; - 158 -> {166} [color=green]; - 158 -> {166} [style=dashed]; + 156 -> {157}; + 157 -> {158}; + 158 -> {164} [color=green]; subgraph cluster_52 { color=red - 160 [label="Enter function [3]" style="filled" fillcolor=red]; - 161 [label="Delegated constructor call: super() [3]"]; - 162 [label="Exit function [3]" style="filled" fillcolor=red]; + 159 [label="Enter property [3]" style="filled" fillcolor=red]; + 160 [label="Access variable R|/tree| [3]"]; + 161 [label="Exit property [3]" style="filled" fillcolor=red]; } + 159 -> {160}; 160 -> {161}; - 161 -> {162}; + 161 -> {165} [color=green]; subgraph cluster_53 { color=red - 163 [label="Enter property [3]" style="filled" fillcolor=red]; - 164 [label="Access variable R|/modifierList| [3]"]; - 165 [label="Exit property [3]" style="filled" fillcolor=red]; + 162 [label="Enter class FirLightModifierList [2]" style="filled" fillcolor=red]; + 163 [label="Part of class initialization [2]"]; + 164 [label="Part of class initialization [2]"]; + 165 [label="Exit class FirLightModifierList [2]" style="filled" fillcolor=red]; } - 163 -> {164}; - 164 -> {165}; - 165 -> {158} [color=green]; + 162 -> {163} [color=green]; + 163 -> {164} [style=dotted]; + 163 -> {156} [color=green]; + 163 -> {156} [style=dashed]; + 164 -> {165} [style=dotted]; + 164 -> {159} [color=green]; + 164 -> {159} [style=dashed]; subgraph cluster_54 { color=red - 166 [label="Enter property [3]" style="filled" fillcolor=red]; - 167 [label="Access variable R|/tree| [3]"]; - 168 [label="Exit property [3]" style="filled" fillcolor=red]; + 166 [label="Enter function [3]" style="filled" fillcolor=red]; + 167 [label="Delegated constructor call: super() [3]"]; + 168 [label="Exit function [3]" style="filled" fillcolor=red]; } 166 -> {167}; 167 -> {168}; - 168 -> {159} [color=green]; subgraph cluster_55 { color=red - 169 [label="Enter class Companion [2]" style="filled" fillcolor=red]; - 170 [label="Exit class Companion [2]" style="filled" fillcolor=red]; - } - 169 -> {170} [color=green]; - - subgraph cluster_56 { - color=red - 171 [label="Enter function [3]" style="filled" fillcolor=red]; - 172 [label="Delegated constructor call: super() [3]"]; - 173 [label="Exit function [3]" style="filled" fillcolor=red]; - } - 171 -> {172}; - 172 -> {173}; - - subgraph cluster_57 { - color=red - 174 [label="Enter function getModifierList [3]" style="filled" fillcolor=red]; - subgraph cluster_58 { + 169 [label="Enter function getModifierList [3]" style="filled" fillcolor=red]; + subgraph cluster_56 { color=blue - 175 [label="Enter block [3]"]; - subgraph cluster_59 { + 170 [label="Enter block [3]"]; + subgraph cluster_57 { color=blue - 176 [label="Enter when [3]"]; - 177 [label="Access variable this@R|/FirModifierList.Companion.getModifierList| [4]"]; + 171 [label="Enter when [3]"]; + 172 [label="Access variable this@R|/FirModifierList.Companion.getModifierList| [4]"]; + subgraph cluster_58 { + color=blue + 173 [label="Enter when branch condition [4]"]; + 174 [label="Const: Null(null) [5]"]; + 175 [label="Equality operator == [5]"]; + 176 [label="Exit when branch condition [4]"]; + } + subgraph cluster_59 { + color=blue + 177 [label="Enter when branch condition [4]"]; + 178 [label="Type operator: ($subj$ is R|FirPsiSourceElement|) [5]"]; + 179 [label="Exit when branch condition [4]"]; + } subgraph cluster_60 { color=blue - 178 [label="Enter when branch condition [4]"]; - 179 [label="Const: Null(null) [5]"]; - 180 [label="Equality operator == [5]"]; - 181 [label="Exit when branch condition [4]"]; + 180 [label="Enter when branch condition [4]"]; + 181 [label="Type operator: ($subj$ is R|FirLightSourceElement|) [5]"]; + 182 [label="Exit when branch condition [4]"]; } + 183 [label="Enter when branch result [5]"]; subgraph cluster_61 { color=blue - 182 [label="Enter when branch condition [4]"]; - 183 [label="Type operator: ($subj$ is R|FirPsiSourceElement|) [5]"]; - 184 [label="Exit when branch condition [4]"]; - } - subgraph cluster_62 { - color=blue - 185 [label="Enter when branch condition [4]"]; - 186 [label="Type operator: ($subj$ is R|FirLightSourceElement|) [5]"]; - 187 [label="Exit when branch condition [4]"]; - } - 188 [label="Enter when branch result [5]"]; - subgraph cluster_63 { - color=blue - 189 [label="Enter block [7]"]; - 190 [label="Access variable R|/FirLightSourceElement.lighterASTNode| [9]"]; - 191 [label="Access variable R|/FirLightSourceElement.treeStructure| [9]"]; - 192 [label="Function call: this@R|/FirModifierList.Companion.getModifierList|.R|/FirLightSourceElement.lighterASTNode|.R|/LighterASTNode.getChildren|(...) [8]"]; - 193 [label="Postponed enter to lambda [8]"]; - subgraph cluster_64 { + 184 [label="Enter block [7]"]; + 185 [label="Access variable R|/FirLightSourceElement.lighterASTNode| [9]"]; + 186 [label="Access variable R|/FirLightSourceElement.treeStructure| [9]"]; + 187 [label="Function call: this@R|/FirModifierList.Companion.getModifierList|.R|/FirLightSourceElement.lighterASTNode|.R|/LighterASTNode.getChildren|(...) [8]"]; + 188 [label="Postponed enter to lambda [8]"]; + subgraph cluster_62 { color=blue - 239 [label="Enter function anonymousFunction [9]" style="filled" fillcolor=red]; - subgraph cluster_65 { + 234 [label="Enter function anonymousFunction [9]" style="filled" fillcolor=red]; + subgraph cluster_63 { color=blue - 240 [label="Enter block [9]"]; - 241 [label="Access variable R|/it| [9]"]; - 242 [label="Enter safe call [9]"]; - 243 [label="Access variable R|/LighterASTNode.tokenType| [9]"]; - 244 [label="Exit safe call [9]"]; - 245 [label="Access qualifier /TokenType [9]"]; - 246 [label="Access variable R|/TokenType.Companion.MODIFIER_LIST| [9]"]; - 247 [label="Equality operator == [9]"]; - 248 [label="Exit block [9]"]; + 235 [label="Enter block [9]"]; + 236 [label="Access variable R|/it| [9]"]; + 237 [label="Enter safe call [9]"]; + 238 [label="Access variable R|/LighterASTNode.tokenType| [9]"]; + 239 [label="Exit safe call [9]"]; + 240 [label="Access qualifier /TokenType [9]"]; + 241 [label="Access variable R|/TokenType.Companion.MODIFIER_LIST| [9]"]; + 242 [label="Equality operator == [9]"]; + 243 [label="Exit block [9]"]; } - 249 [label="Exit function anonymousFunction [9]" style="filled" fillcolor=red]; + 244 [label="Exit function anonymousFunction [9]" style="filled" fillcolor=red]; } - 194 [label="Postponed exit from lambda [8]"]; - 195 [label="Function call: this@R|/FirModifierList.Companion.getModifierList|.R|/FirLightSourceElement.lighterASTNode|.R|/LighterASTNode.getChildren|(...).R|kotlin/collections/find|(...) [7]"]; - 196 [label="Exit lhs of ?: [7]"]; - 197 [label="Enter rhs of ?: [7]"]; - 198 [label="Const: Null(null) [7]"]; - 199 [label="Jump: ^getModifierList Null(null) [7]"]; - 200 [label="Stub [7]" style="filled" fillcolor=gray]; - 201 [label="Lhs of ?: is not null [7]"]; - 202 [label="Exit ?: [7]"]; - 203 [label="Variable declaration: lval modifierListNode: R|LighterASTNode| [7]"]; - 204 [label="Access variable R|/modifierListNode| [8]"]; - 205 [label="Access variable R|/FirLightSourceElement.treeStructure| [8]"]; - 206 [label="Function call: R|/FirModifierList.FirLightModifierList.FirLightModifierList|(...) [7]"]; - 207 [label="Exit block [7]"]; + 189 [label="Postponed exit from lambda [8]"]; + 190 [label="Function call: this@R|/FirModifierList.Companion.getModifierList|.R|/FirLightSourceElement.lighterASTNode|.R|/LighterASTNode.getChildren|(...).R|kotlin/collections/find|(...) [7]"]; + 191 [label="Exit lhs of ?: [7]"]; + 192 [label="Enter rhs of ?: [7]"]; + 193 [label="Const: Null(null) [7]"]; + 194 [label="Jump: ^getModifierList Null(null) [7]"]; + 195 [label="Stub [7]" style="filled" fillcolor=gray]; + 196 [label="Lhs of ?: is not null [7]"]; + 197 [label="Exit ?: [7]"]; + 198 [label="Variable declaration: lval modifierListNode: R|LighterASTNode| [7]"]; + 199 [label="Access variable R|/modifierListNode| [8]"]; + 200 [label="Access variable R|/FirLightSourceElement.treeStructure| [8]"]; + 201 [label="Function call: R|/FirModifierList.FirLightModifierList.FirLightModifierList|(...) [7]"]; + 202 [label="Exit block [7]"]; } - 208 [label="Exit when branch result [6]"]; - 209 [label="Enter when branch result [5]"]; - subgraph cluster_66 { + 203 [label="Exit when branch result [6]"]; + 204 [label="Enter when branch result [5]"]; + subgraph cluster_64 { color=blue - 210 [label="Enter block [6]"]; - 211 [label="Access variable R|/FirPsiSourceElement.psi| [6]"]; - 212 [label="Type operator: (this@R|/FirModifierList.Companion.getModifierList|.R|/FirPsiSourceElement.psi| as? R|KtModifierListOwner|) [6]"]; - 213 [label="Enter safe call [6]"]; - 214 [label="Access variable R|/KtModifierListOwner.modifierList| [6]"]; + 205 [label="Enter block [6]"]; + 206 [label="Access variable R|/FirPsiSourceElement.psi| [6]"]; + 207 [label="Type operator: (this@R|/FirModifierList.Companion.getModifierList|.R|/FirPsiSourceElement.psi| as? R|KtModifierListOwner|) [6]"]; + 208 [label="Enter safe call [6]"]; + 209 [label="Access variable R|/KtModifierListOwner.modifierList| [6]"]; + 210 [label="Exit safe call [6]"]; + 211 [label="Enter safe call [6]"]; + 212 [label="Postponed enter to lambda [7]"]; + subgraph cluster_65 { + color=blue + 228 [label="Enter function anonymousFunction [8]" style="filled" fillcolor=red]; + subgraph cluster_66 { + color=blue + 229 [label="Enter block [8]"]; + 230 [label="Access variable R|/it| [9]"]; + 231 [label="Function call: R|/FirModifierList.FirPsiModifierList.FirPsiModifierList|(...) [8]"]; + 232 [label="Exit block [8]"]; + } + 233 [label="Exit function anonymousFunction [8]" style="filled" fillcolor=red]; + } + 213 [label="Postponed exit from lambda [7]"]; + 214 [label="Function call: $subj$.R|kotlin/let|(...) [6]"]; 215 [label="Exit safe call [6]"]; - 216 [label="Enter safe call [6]"]; - 217 [label="Postponed enter to lambda [7]"]; - subgraph cluster_67 { - color=blue - 233 [label="Enter function anonymousFunction [8]" style="filled" fillcolor=red]; - subgraph cluster_68 { - color=blue - 234 [label="Enter block [8]"]; - 235 [label="Access variable R|/it| [9]"]; - 236 [label="Function call: R|/FirModifierList.FirPsiModifierList.FirPsiModifierList|(...) [8]"]; - 237 [label="Exit block [8]"]; - } - 238 [label="Exit function anonymousFunction [8]" style="filled" fillcolor=red]; - } - 218 [label="Postponed exit from lambda [7]"]; - 219 [label="Function call: $subj$.R|kotlin/let|(...) [6]"]; - 220 [label="Exit safe call [6]"]; - 221 [label="Exit block [6]"]; + 216 [label="Exit block [6]"]; } - 222 [label="Exit when branch result [5]"]; - 223 [label="Enter when branch result [5]"]; - subgraph cluster_69 { + 217 [label="Exit when branch result [5]"]; + 218 [label="Enter when branch result [5]"]; + subgraph cluster_67 { color=blue - 224 [label="Enter block [5]"]; - 225 [label="Const: Null(null) [5]"]; - 226 [label="Exit block [5]"]; + 219 [label="Enter block [5]"]; + 220 [label="Const: Null(null) [5]"]; + 221 [label="Exit block [5]"]; } - 227 [label="Exit when branch result [4]"]; - 228 [label="Exit when [3]"]; + 222 [label="Exit when branch result [4]"]; + 223 [label="Exit when [3]"]; } - 229 [label="Jump: ^getModifierList when (this@R|/FirModifierList.Companion.getModifierList|) { + 224 [label="Jump: ^getModifierList when (this@R|/FirModifierList.Companion.getModifierList|) { ==($subj$, Null(null)) -> { Null(null) } @@ -699,143 +681,143 @@ digraph kt44814_kt { } } [3]"]; - 230 [label="Stub [3]" style="filled" fillcolor=gray]; - 231 [label="Exit block [3]" style="filled" fillcolor=gray]; + 225 [label="Stub [3]" style="filled" fillcolor=gray]; + 226 [label="Exit block [3]" style="filled" fillcolor=gray]; } - 232 [label="Exit function getModifierList [3]" style="filled" fillcolor=red]; + 227 [label="Exit function getModifierList [3]" style="filled" fillcolor=red]; } + 169 -> {170}; + 170 -> {171}; + 171 -> {172}; + 172 -> {173}; + 173 -> {174}; 174 -> {175}; 175 -> {176}; - 176 -> {177}; + 176 -> {218 177}; 177 -> {178}; 178 -> {179}; - 179 -> {180}; + 179 -> {204 180}; 180 -> {181}; - 181 -> {223 182}; + 181 -> {182}; 182 -> {183}; 183 -> {184}; - 184 -> {209 185}; + 184 -> {185}; 185 -> {186}; 186 -> {187}; 187 -> {188}; - 188 -> {189}; + 188 -> {234}; + 188 -> {189} [color=red]; + 188 -> {234} [style=dashed]; 189 -> {190}; 190 -> {191}; - 191 -> {192}; + 191 -> {196 192}; 192 -> {193}; - 193 -> {239}; - 193 -> {194} [color=red]; - 193 -> {239} [style=dashed]; - 194 -> {195}; - 195 -> {196}; - 196 -> {201 197}; + 193 -> {194}; + 194 -> {227}; + 194 -> {195} [style=dotted]; + 195 -> {197} [style=dotted]; + 196 -> {197}; 197 -> {198}; 198 -> {199}; - 199 -> {232}; - 199 -> {200} [style=dotted]; - 200 -> {202} [style=dotted]; + 199 -> {200}; + 200 -> {201}; 201 -> {202}; 202 -> {203}; - 203 -> {204}; + 203 -> {223}; 204 -> {205}; 205 -> {206}; 206 -> {207}; - 207 -> {208}; - 208 -> {228}; + 207 -> {208 210}; + 208 -> {209}; 209 -> {210}; - 210 -> {211}; + 210 -> {211 215}; 211 -> {212}; - 212 -> {213 215}; + 212 -> {228}; + 212 -> {213} [color=red]; + 212 -> {228} [style=dashed]; 213 -> {214}; 214 -> {215}; - 215 -> {216 220}; + 215 -> {216}; 216 -> {217}; - 217 -> {233}; - 217 -> {218} [color=red]; - 217 -> {233} [style=dashed]; + 217 -> {223}; 218 -> {219}; 219 -> {220}; 220 -> {221}; 221 -> {222}; - 222 -> {228}; + 222 -> {223}; 223 -> {224}; - 224 -> {225}; - 225 -> {226}; - 226 -> {227}; - 227 -> {228}; + 224 -> {227}; + 224 -> {225} [style=dotted]; + 225 -> {226} [style=dotted]; + 226 -> {227} [style=dotted]; 228 -> {229}; - 229 -> {232}; - 229 -> {230} [style=dotted]; - 230 -> {231} [style=dotted]; - 231 -> {232} [style=dotted]; - 233 -> {234}; - 234 -> {235}; + 229 -> {230}; + 230 -> {231}; + 231 -> {232}; + 232 -> {233}; + 233 -> {213} [color=green]; + 234 -> {244 235}; 235 -> {236}; - 236 -> {237}; + 236 -> {237 239}; 237 -> {238}; - 238 -> {218} [color=green]; - 239 -> {249 240}; + 238 -> {239}; + 239 -> {240}; 240 -> {241}; - 241 -> {242 244}; + 241 -> {242}; 242 -> {243}; 243 -> {244}; - 244 -> {245}; - 245 -> {246}; - 246 -> {247}; - 247 -> {248}; - 248 -> {249}; - 249 -> {194} [color=green]; - 249 -> {239} [color=green style=dashed]; + 244 -> {189} [color=green]; + 244 -> {234} [color=green style=dashed]; - subgraph cluster_70 { + subgraph cluster_68 { color=red - 250 [label="Enter function boxImpl [3]" style="filled" fillcolor=red]; - subgraph cluster_71 { + 245 [label="Enter function boxImpl [3]" style="filled" fillcolor=red]; + subgraph cluster_69 { color=blue - 251 [label="Enter block [3]"]; - 252 [label="Function call: R|/LighterASTNode.LighterASTNode|() [6]"]; - 253 [label="Function call: R|kotlin/collections/listOf|(...) [5]"]; - 254 [label="Function call: R|/LighterASTNode.LighterASTNode|(...) [4]"]; - 255 [label="Function call: R|/FlyweightCapableTreeStructure.FlyweightCapableTreeStructure|() [4]"]; - 256 [label="Function call: R|/FirLightSourceElement.FirLightSourceElement|(...) [3]"]; - 257 [label="Variable declaration: lval sourceElement: R|FirSourceElement?| [3]"]; - 258 [label="Access variable R|/sourceElement| [4]"]; - 259 [label="Function call: (this@R|/FirModifierList.Companion|, R|/sourceElement|).R|/FirModifierList.Companion.getModifierList|() [3]"]; - 260 [label="Variable declaration: lval result: R|FirModifierList?| [3]"]; - subgraph cluster_72 { + 246 [label="Enter block [3]"]; + 247 [label="Function call: R|/LighterASTNode.LighterASTNode|() [6]"]; + 248 [label="Function call: R|kotlin/collections/listOf|(...) [5]"]; + 249 [label="Function call: R|/LighterASTNode.LighterASTNode|(...) [4]"]; + 250 [label="Function call: R|/FlyweightCapableTreeStructure.FlyweightCapableTreeStructure|() [4]"]; + 251 [label="Function call: R|/FirLightSourceElement.FirLightSourceElement|(...) [3]"]; + 252 [label="Variable declaration: lval sourceElement: R|FirSourceElement?| [3]"]; + 253 [label="Access variable R|/sourceElement| [4]"]; + 254 [label="Function call: (this@R|/FirModifierList.Companion|, R|/sourceElement|).R|/FirModifierList.Companion.getModifierList|() [3]"]; + 255 [label="Variable declaration: lval result: R|FirModifierList?| [3]"]; + subgraph cluster_70 { color=blue - 261 [label="Enter when [3]"]; + 256 [label="Enter when [3]"]; + subgraph cluster_71 { + color=blue + 257 [label="Enter when branch condition [4]"]; + 258 [label="Access variable R|/result| [5]"]; + 259 [label="Type operator: (R|/result| is R|FirModifierList.FirLightModifierList|) [5]"]; + 260 [label="Exit when branch condition [4]"]; + } + subgraph cluster_72 { + color=blue + 261 [label="Enter when branch condition else [4]"]; + 262 [label="Exit when branch condition [4]"]; + } + 263 [label="Enter when branch result [5]"]; subgraph cluster_73 { color=blue - 262 [label="Enter when branch condition [4]"]; - 263 [label="Access variable R|/result| [5]"]; - 264 [label="Type operator: (R|/result| is R|FirModifierList.FirLightModifierList|) [5]"]; - 265 [label="Exit when branch condition [4]"]; + 264 [label="Enter block [6]"]; + 265 [label="Const: String(Fail) [6]"]; + 266 [label="Exit block [6]"]; } + 267 [label="Exit when branch result [5]"]; + 268 [label="Enter when branch result [5]"]; subgraph cluster_74 { color=blue - 266 [label="Enter when branch condition else [4]"]; - 267 [label="Exit when branch condition [4]"]; + 269 [label="Enter block [5]"]; + 270 [label="Const: String(OK) [5]"]; + 271 [label="Exit block [5]"]; } - 268 [label="Enter when branch result [5]"]; - subgraph cluster_75 { - color=blue - 269 [label="Enter block [6]"]; - 270 [label="Const: String(Fail) [6]"]; - 271 [label="Exit block [6]"]; - } - 272 [label="Exit when branch result [5]"]; - 273 [label="Enter when branch result [5]"]; - subgraph cluster_76 { - color=blue - 274 [label="Enter block [5]"]; - 275 [label="Const: String(OK) [5]"]; - 276 [label="Exit block [5]"]; - } - 277 [label="Exit when branch result [4]"]; - 278 [label="Exit when [3]"]; + 272 [label="Exit when branch result [4]"]; + 273 [label="Exit when [3]"]; } - 279 [label="Jump: ^boxImpl when () { + 274 [label="Jump: ^boxImpl when () { (R|/result| is R|FirModifierList.FirLightModifierList|) -> { String(OK) } @@ -844,11 +826,16 @@ digraph kt44814_kt { } } [3]"]; - 280 [label="Stub [3]" style="filled" fillcolor=gray]; - 281 [label="Exit block [3]" style="filled" fillcolor=gray]; + 275 [label="Stub [3]" style="filled" fillcolor=gray]; + 276 [label="Exit block [3]" style="filled" fillcolor=gray]; } - 282 [label="Exit function boxImpl [3]" style="filled" fillcolor=red]; + 277 [label="Exit function boxImpl [3]" style="filled" fillcolor=red]; } + 245 -> {246}; + 246 -> {247}; + 247 -> {248}; + 248 -> {249}; + 249 -> {250}; 250 -> {251}; 251 -> {252}; 252 -> {253}; @@ -859,29 +846,42 @@ digraph kt44814_kt { 257 -> {258}; 258 -> {259}; 259 -> {260}; - 260 -> {261}; + 260 -> {268 261}; 261 -> {262}; 262 -> {263}; 263 -> {264}; 264 -> {265}; - 265 -> {273 266}; + 265 -> {266}; 266 -> {267}; - 267 -> {268}; + 267 -> {273}; 268 -> {269}; 269 -> {270}; 270 -> {271}; 271 -> {272}; - 272 -> {278}; + 272 -> {273}; 273 -> {274}; - 274 -> {275}; - 275 -> {276}; - 276 -> {277}; - 277 -> {278}; - 278 -> {279}; - 279 -> {282}; - 279 -> {280} [style=dotted]; - 280 -> {281} [style=dotted]; + 274 -> {277}; + 274 -> {275} [style=dotted]; + 275 -> {276} [style=dotted]; + 276 -> {277} [style=dotted]; + + subgraph cluster_75 { + color=red + 278 [label="Enter class Companion [2]" style="filled" fillcolor=red]; + 279 [label="Exit class Companion [2]" style="filled" fillcolor=red]; + } + 278 -> {279} [color=green]; + + subgraph cluster_76 { + color=red + 280 [label="Enter class FirModifierList [1]" style="filled" fillcolor=red]; + 281 [label="Part of class initialization [1]"]; + 282 [label="Exit class FirModifierList [1]" style="filled" fillcolor=red]; + } + 280 -> {281} [color=green]; 281 -> {282} [style=dotted]; + 281 -> {141} [color=green]; + 281 -> {141} [style=dashed]; subgraph cluster_77 { color=red