diff --git a/compiler/fir/analysis-tests/testData/resolve/cfg/initBlockAndInPlaceLambda.dot b/compiler/fir/analysis-tests/testData/resolve/cfg/initBlockAndInPlaceLambda.dot index e3cac56478b..42a50a7bd70 100644 --- a/compiler/fir/analysis-tests/testData/resolve/cfg/initBlockAndInPlaceLambda.dot +++ b/compiler/fir/analysis-tests/testData/resolve/cfg/initBlockAndInPlaceLambda.dot @@ -11,15 +11,13 @@ digraph initBlockAndInPlaceLambda_kt { 0 -> {1} [color=green]; subgraph cluster_1 { - color=red - 2 [label="Enter function getter" style="filled" fillcolor=red]; - 3 [label="Exit function getter" style="filled" fillcolor=red]; - } - 2 -> {3}; - - subgraph cluster_2 { color=red 6 [label="Enter class A" style="filled" fillcolor=red]; + subgraph cluster_2 { + color=blue + 2 [label="Enter function getter" style="filled" fillcolor=red]; + 3 [label="Exit function getter" style="filled" fillcolor=red]; + } subgraph cluster_3 { color=blue 4 [label="Enter property" style="filled" fillcolor=red]; @@ -30,6 +28,7 @@ digraph initBlockAndInPlaceLambda_kt { 6 -> {4} [color=green]; 4 -> {5}; 5 -> {7} [color=green]; + 2 -> {3}; subgraph cluster_4 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/cfg/lambdaAsReturnOfLambda.dot b/compiler/fir/analysis-tests/testData/resolve/cfg/lambdaAsReturnOfLambda.dot index 524371b887e..b713d054ebf 100644 --- a/compiler/fir/analysis-tests/testData/resolve/cfg/lambdaAsReturnOfLambda.dot +++ b/compiler/fir/analysis-tests/testData/resolve/cfg/lambdaAsReturnOfLambda.dot @@ -4,15 +4,13 @@ digraph lambdaAsReturnOfLambda_kt { edge [penwidth=2] subgraph cluster_0 { - color=red - 8 [label="Enter function getter" style="filled" fillcolor=red]; - 9 [label="Exit function getter" style="filled" fillcolor=red]; - } - 8 -> {9}; - - subgraph cluster_1 { color=red 10 [label="Enter property" style="filled" fillcolor=red]; + subgraph cluster_1 { + color=blue + 8 [label="Enter function getter" style="filled" fillcolor=red]; + 9 [label="Exit function getter" style="filled" fillcolor=red]; + } 12 [label="Postponed enter to lambda"]; subgraph cluster_2 { color=blue @@ -55,6 +53,7 @@ digraph lambdaAsReturnOfLambda_kt { 4 -> {6}; 6 -> {7}; 7 -> {5}; + 8 -> {9}; subgraph cluster_5 { 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 b5a60b809fa..21085c0ece1 100644 --- a/compiler/fir/analysis-tests/testData/resolve/cfg/postponedLambdaInConstructor.dot +++ b/compiler/fir/analysis-tests/testData/resolve/cfg/postponedLambdaInConstructor.dot @@ -61,13 +61,6 @@ digraph postponedLambdaInConstructor_kt { 19 -> {18}; subgraph cluster_5 { - color=red - 20 [label="Enter function getter" style="filled" fillcolor=red]; - 21 [label="Exit function getter" style="filled" fillcolor=red]; - } - 20 -> {21}; - - subgraph cluster_6 { color=red 25 [label="Enter function foo" style="filled" fillcolor=red]; 27 [label="Function call: this@R|/B|.R|/B.foo|()"]; @@ -76,9 +69,14 @@ digraph postponedLambdaInConstructor_kt { 25 -> {27}; 27 -> {26}; - subgraph cluster_7 { + subgraph cluster_6 { color=red 28 [label="Enter class B" style="filled" fillcolor=red]; + subgraph cluster_7 { + color=blue + 20 [label="Enter function getter" style="filled" fillcolor=red]; + 21 [label="Exit function getter" style="filled" fillcolor=red]; + } subgraph cluster_8 { color=blue 22 [label="Enter property" style="filled" fillcolor=red]; @@ -91,5 +89,6 @@ digraph postponedLambdaInConstructor_kt { 22 -> {24}; 23 -> {29} [color=green]; 24 -> {23}; + 20 -> {21}; } diff --git a/compiler/fir/analysis-tests/testData/resolve/cfg/propertiesAndInitBlocks.dot b/compiler/fir/analysis-tests/testData/resolve/cfg/propertiesAndInitBlocks.dot index de1abaae235..f04321ec010 100644 --- a/compiler/fir/analysis-tests/testData/resolve/cfg/propertiesAndInitBlocks.dot +++ b/compiler/fir/analysis-tests/testData/resolve/cfg/propertiesAndInitBlocks.dot @@ -13,54 +13,51 @@ digraph propertiesAndInitBlocks_kt { 2 -> {1}; subgraph cluster_1 { - color=red - 3 [label="Enter function getter" style="filled" fillcolor=red]; - 4 [label="Exit function getter" style="filled" fillcolor=red]; - } - 3 -> {4}; - - subgraph cluster_2 { color=red 5 [label="Enter property" style="filled" fillcolor=red]; + subgraph cluster_2 { + color=blue + 3 [label="Enter function getter" style="filled" fillcolor=red]; + 4 [label="Exit function getter" style="filled" fillcolor=red]; + } 7 [label="Const: Int(1)"]; 6 [label="Exit property" style="filled" fillcolor=red]; } 5 -> {7}; 7 -> {6}; + 3 -> {4}; subgraph cluster_3 { - color=red - 8 [label="Enter function getter" style="filled" fillcolor=red]; - 10 [label="Const: Int(1)"]; - 11 [label="Jump: ^ Int(1)"]; - 12 [label="Stub" style="filled" fillcolor=gray]; - 9 [label="Exit function getter" style="filled" fillcolor=red]; - } - 8 -> {10}; - 10 -> {11}; - 11 -> {9}; - 11 -> {12} [style=dotted]; - 12 -> {9} [style=dotted]; - - subgraph cluster_4 { - color=red - 13 [label="Enter function setter" style="filled" fillcolor=red]; - 15 [label="Const: Int(1)"]; - 16 [label="Assignment: F|/x2|"]; - 14 [label="Exit function setter" style="filled" fillcolor=red]; - } - 13 -> {15}; - 15 -> {16}; - 16 -> {14}; - - subgraph cluster_5 { color=red 17 [label="Enter property" style="filled" fillcolor=red]; + subgraph cluster_4 { + color=blue + 13 [label="Enter function setter" style="filled" fillcolor=red]; + 15 [label="Const: Int(1)"]; + 16 [label="Assignment: F|/x2|"]; + 14 [label="Exit function setter" style="filled" fillcolor=red]; + } + subgraph cluster_5 { + color=blue + 8 [label="Enter function getter" style="filled" fillcolor=red]; + 10 [label="Const: Int(1)"]; + 11 [label="Jump: ^ Int(1)"]; + 12 [label="Stub" style="filled" fillcolor=gray]; + 9 [label="Exit function getter" style="filled" fillcolor=red]; + } 19 [label="Const: Int(1)"]; 18 [label="Exit property" style="filled" fillcolor=red]; } 17 -> {19}; 19 -> {18}; + 8 -> {10}; + 10 -> {11}; + 11 -> {9}; + 11 -> {12} [style=dotted]; + 12 -> {9} [style=dotted]; + 13 -> {15}; + 15 -> {16}; + 16 -> {14}; subgraph cluster_6 { color=red @@ -102,16 +99,6 @@ digraph propertiesAndInitBlocks_kt { 39 -> {33} [style=dotted]; subgraph cluster_10 { - color=red - 42 [label="Enter function getter" style="filled" fillcolor=red]; - 44 [label="Exit local class "]; - 43 [label="Exit function getter" style="filled" fillcolor=red]; - } - 42 -> {44}; - 42 -> {45} [color=red]; - 44 -> {43}; - - subgraph cluster_11 { color=red 45 [label="Enter function " style="filled" fillcolor=red]; 47 [label="Delegated constructor call: super()"]; @@ -120,13 +107,13 @@ digraph propertiesAndInitBlocks_kt { 45 -> {47}; 47 -> {46}; - subgraph cluster_12 { + subgraph cluster_11 { color=red 55 [label="Enter class LocalClass" style="filled" fillcolor=red]; - subgraph cluster_13 { + subgraph cluster_12 { color=blue 48 [label="Enter init block" style="filled" fillcolor=red]; - subgraph cluster_14 { + subgraph cluster_13 { color=blue 50 [label="Enter block"]; 51 [label="Function call: R|java/lang/Exception.Exception|()"]; @@ -148,24 +135,36 @@ digraph propertiesAndInitBlocks_kt { 53 -> {54} [style=dotted]; 54 -> {49} [style=dotted]; - subgraph cluster_15 { + subgraph cluster_14 { color=red 57 [label="Enter property" style="filled" fillcolor=red]; - 59 [label="Postponed enter to lambda"]; + subgraph cluster_15 { + color=blue + 42 [label="Enter function getter" style="filled" fillcolor=red]; + 44 [label="Exit local class "]; + 43 [label="Exit function getter" style="filled" fillcolor=red]; + } subgraph cluster_16 { + color=blue + 45 [label="Enter function " style="filled" fillcolor=red]; + 47 [label="Delegated constructor call: super()"]; + 46 [label="Exit function " style="filled" fillcolor=red]; + } + 59 [label="Postponed enter to lambda"]; + subgraph cluster_17 { color=blue 61 [label="Enter function anonymousFunction"]; 63 [label="Exit local class val x3"]; 64 [label="Function call: R|java/lang/Exception.Exception|()"]; 65 [label="Throw: throw R|java/lang/Exception.Exception|()"]; 66 [label="Stub" style="filled" fillcolor=gray]; - subgraph cluster_17 { + subgraph cluster_18 { color=blue 29 [label="Enter function " style="filled" fillcolor=red]; 31 [label="Delegated constructor call: super()"]; 30 [label="Exit function " style="filled" fillcolor=red]; } - subgraph cluster_18 { + subgraph cluster_19 { color=blue 20 [label="Enter function foo" style="filled" fillcolor=red]; 22 [label="Const: Int(1)"]; @@ -206,24 +205,25 @@ digraph propertiesAndInitBlocks_kt { 27 -> {21}; 27 -> {28} [style=dotted]; 28 -> {21} [style=dotted]; - - subgraph cluster_19 { - color=red - 68 [label="Enter function getter" style="filled" fillcolor=red]; - 69 [label="Exit function getter" style="filled" fillcolor=red]; - } - 68 -> {69}; + 42 -> {44}; + 42 -> {45} [color=red]; + 44 -> {43}; subgraph cluster_20 { color=red 70 [label="Enter property" style="filled" fillcolor=red]; subgraph cluster_21 { + color=blue + 68 [label="Enter function getter" style="filled" fillcolor=red]; + 69 [label="Exit function getter" style="filled" fillcolor=red]; + } + subgraph cluster_22 { color=blue 72 [label="Try expression enter"]; - subgraph cluster_22 { + subgraph cluster_23 { color=blue 74 [label="Try main block enter"]; - subgraph cluster_23 { + subgraph cluster_24 { color=blue 77 [label="Enter block"]; 78 [label="Const: Int(1)"]; @@ -231,10 +231,10 @@ digraph propertiesAndInitBlocks_kt { } 80 [label="Try main block exit"]; } - subgraph cluster_24 { + subgraph cluster_25 { color=blue 76 [label="Enter finally"]; - subgraph cluster_25 { + subgraph cluster_26 { color=blue 85 [label="Enter block"]; 86 [label="Const: Int(0)"]; @@ -242,10 +242,10 @@ digraph propertiesAndInitBlocks_kt { } 88 [label="Exit finally"]; } - subgraph cluster_26 { + subgraph cluster_27 { color=blue 75 [label="Catch enter"]; - subgraph cluster_27 { + subgraph cluster_28 { color=blue 81 [label="Enter block"]; 82 [label="Const: Int(2)"]; @@ -275,5 +275,6 @@ digraph propertiesAndInitBlocks_kt { 86 -> {87}; 87 -> {88}; 88 -> {73}; + 68 -> {69}; } diff --git a/compiler/fir/analysis-tests/testData/resolve/cfg/safeCalls.dot b/compiler/fir/analysis-tests/testData/resolve/cfg/safeCalls.dot index 7b0f08bffbc..4374fe4936b 100644 --- a/compiler/fir/analysis-tests/testData/resolve/cfg/safeCalls.dot +++ b/compiler/fir/analysis-tests/testData/resolve/cfg/safeCalls.dot @@ -25,22 +25,18 @@ digraph safeCalls_kt { 4 -> {5} [color=green]; subgraph cluster_3 { - color=red - 6 [label="Enter function getter" style="filled" fillcolor=red]; - 7 [label="Exit function getter" style="filled" fillcolor=red]; - } - 6 -> {7}; - - subgraph cluster_4 { - color=red - 10 [label="Enter function getter" style="filled" fillcolor=red]; - 11 [label="Exit function getter" style="filled" fillcolor=red]; - } - 10 -> {11}; - - subgraph cluster_5 { color=red 14 [label="Enter class B" style="filled" fillcolor=red]; + subgraph cluster_4 { + color=blue + 10 [label="Enter function getter" style="filled" fillcolor=red]; + 11 [label="Exit function getter" style="filled" fillcolor=red]; + } + subgraph cluster_5 { + color=blue + 6 [label="Enter function getter" style="filled" fillcolor=red]; + 7 [label="Exit function getter" style="filled" fillcolor=red]; + } subgraph cluster_6 { color=blue 8 [label="Enter property" style="filled" fillcolor=red]; @@ -56,8 +52,10 @@ digraph safeCalls_kt { 14 -> {8} [color=green]; 8 -> {9}; 9 -> {12} [color=green]; + 6 -> {7}; 12 -> {13}; 13 -> {15} [color=green]; + 10 -> {11}; subgraph cluster_8 { 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 a2eed9f2f9e..a2b5cdc6b1f 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/booleans/equalsToBoolean.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/booleans/equalsToBoolean.dot @@ -11,15 +11,13 @@ digraph equalsToBoolean_kt { 0 -> {1}; subgraph cluster_1 { - color=red - 2 [label="Enter function getter" style="filled" fillcolor=red]; - 3 [label="Exit function getter" style="filled" fillcolor=red]; - } - 2 -> {3}; - - subgraph cluster_2 { color=red 6 [label="Enter class A" style="filled" fillcolor=red]; + subgraph cluster_2 { + color=blue + 2 [label="Enter function getter" style="filled" fillcolor=red]; + 3 [label="Exit function getter" style="filled" fillcolor=red]; + } subgraph cluster_3 { color=blue 4 [label="Enter property" style="filled" fillcolor=red]; @@ -30,6 +28,7 @@ digraph equalsToBoolean_kt { 6 -> {4} [color=green]; 4 -> {5}; 5 -> {7} [color=green]; + 2 -> {3}; subgraph cluster_4 { 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 64ee3364758..819c6934173 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/boundSmartcasts/boundSmartcasts.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/boundSmartcasts/boundSmartcasts.dot @@ -296,15 +296,13 @@ digraph boundSmartcasts_kt { 109 -> {108}; subgraph cluster_24 { - color=red - 110 [label="Enter function getter" style="filled" fillcolor=red]; - 111 [label="Exit function getter" style="filled" fillcolor=red]; - } - 110 -> {111}; - - subgraph cluster_25 { color=red 115 [label="Enter class D" style="filled" fillcolor=red]; + subgraph cluster_25 { + color=blue + 110 [label="Enter function getter" style="filled" fillcolor=red]; + 111 [label="Exit function getter" style="filled" fillcolor=red]; + } subgraph cluster_26 { color=blue 112 [label="Enter property" style="filled" fillcolor=red]; @@ -317,6 +315,7 @@ digraph boundSmartcasts_kt { 112 -> {114}; 113 -> {116} [color=green]; 114 -> {113}; + 110 -> {111}; subgraph cluster_27 { 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 3e652ee2698..f81deb36c77 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/boundSmartcasts/boundSmartcastsInBranches.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/boundSmartcasts/boundSmartcastsInBranches.dot @@ -13,15 +13,13 @@ digraph boundSmartcastsInBranches_kt { 2 -> {1}; subgraph cluster_1 { - color=red - 3 [label="Enter function getter" style="filled" fillcolor=red]; - 4 [label="Exit function getter" style="filled" fillcolor=red]; - } - 3 -> {4}; - - subgraph cluster_2 { color=red 8 [label="Enter class A" style="filled" fillcolor=red]; + subgraph cluster_2 { + color=blue + 3 [label="Enter function getter" style="filled" fillcolor=red]; + 4 [label="Exit function getter" style="filled" fillcolor=red]; + } subgraph cluster_3 { color=blue 5 [label="Enter property" style="filled" fillcolor=red]; @@ -34,6 +32,7 @@ digraph boundSmartcastsInBranches_kt { 5 -> {7}; 6 -> {9} [color=green]; 7 -> {6}; + 3 -> {4}; subgraph cluster_4 { 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 066f12b4870..a9f0806d390 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/boundSmartcasts/functionCallBound.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/boundSmartcasts/functionCallBound.dot @@ -29,15 +29,13 @@ digraph functionCallBound_kt { 7 -> {6}; subgraph cluster_3 { - color=red - 8 [label="Enter function getter" style="filled" fillcolor=red]; - 9 [label="Exit function getter" style="filled" fillcolor=red]; - } - 8 -> {9}; - - subgraph cluster_4 { color=red 13 [label="Enter class Sub" style="filled" fillcolor=red]; + subgraph cluster_4 { + color=blue + 8 [label="Enter function getter" style="filled" fillcolor=red]; + 9 [label="Exit function getter" style="filled" fillcolor=red]; + } subgraph cluster_5 { color=blue 10 [label="Enter property" style="filled" fillcolor=red]; @@ -50,6 +48,7 @@ digraph functionCallBound_kt { 10 -> {12}; 11 -> {14} [color=green]; 12 -> {11}; + 8 -> {9}; subgraph cluster_6 { 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 446755c0c89..25a4b243ed0 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/controlStructures/elvis.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/controlStructures/elvis.dot @@ -11,15 +11,13 @@ digraph elvis_kt { 0 -> {1}; subgraph cluster_1 { - color=red - 2 [label="Enter function getter" style="filled" fillcolor=red]; - 3 [label="Exit function getter" style="filled" fillcolor=red]; - } - 2 -> {3}; - - subgraph cluster_2 { color=red 6 [label="Enter class A" style="filled" fillcolor=red]; + subgraph cluster_2 { + color=blue + 2 [label="Enter function getter" style="filled" fillcolor=red]; + 3 [label="Exit function getter" style="filled" fillcolor=red]; + } subgraph cluster_3 { color=blue 4 [label="Enter property" style="filled" fillcolor=red]; @@ -30,6 +28,7 @@ digraph elvis_kt { 6 -> {4} [color=green]; 4 -> {5}; 5 -> {7} [color=green]; + 2 -> {3}; subgraph cluster_4 { 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 853a97e2958..5d10cd75784 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/controlStructures/returns.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/controlStructures/returns.dot @@ -371,25 +371,24 @@ digraph returns_kt { subgraph cluster_33 { color=red - 132 [label="Enter function getter" style="filled" fillcolor=red]; - 134 [label="Access variable R|kotlin/String.length|"]; - 135 [label="Jump: ^ this@R|/ext|.R|kotlin/String.length|"]; - 136 [label="Stub" style="filled" fillcolor=gray]; - 133 [label="Exit function getter" style="filled" fillcolor=red]; + 137 [label="Enter property" style="filled" fillcolor=red]; + subgraph cluster_34 { + color=blue + 132 [label="Enter function getter" style="filled" fillcolor=red]; + 134 [label="Access variable R|kotlin/String.length|"]; + 135 [label="Jump: ^ this@R|/ext|.R|kotlin/String.length|"]; + 136 [label="Stub" style="filled" fillcolor=gray]; + 133 [label="Exit function getter" style="filled" fillcolor=red]; + } + 138 [label="Exit property" style="filled" fillcolor=red]; } + 137 -> {138}; 132 -> {134}; 134 -> {135}; 135 -> {133}; 135 -> {136} [style=dotted]; 136 -> {133} [style=dotted]; - subgraph cluster_34 { - color=red - 137 [label="Enter property" style="filled" fillcolor=red]; - 138 [label="Exit property" style="filled" fillcolor=red]; - } - 137 -> {138}; - subgraph cluster_35 { color=red 139 [label="Enter function test_4" style="filled" fillcolor=red]; diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/nullability.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/nullability.dot index 7b457a001b4..cde0f1f870f 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/nullability.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/nullability.dot @@ -25,22 +25,20 @@ digraph nullability_kt { 4 -> {5} [color=green]; subgraph cluster_3 { - color=red - 6 [label="Enter function getter" style="filled" fillcolor=red]; - 7 [label="Exit function getter" style="filled" fillcolor=red]; - } - 6 -> {7}; - - subgraph cluster_4 { color=red 10 [label="Enter function fs" style="filled" fillcolor=red]; 11 [label="Exit function fs" style="filled" fillcolor=red]; } 10 -> {11}; - subgraph cluster_5 { + subgraph cluster_4 { color=red 12 [label="Enter class MyData" style="filled" fillcolor=red]; + subgraph cluster_5 { + color=blue + 6 [label="Enter function getter" style="filled" fillcolor=red]; + 7 [label="Exit function getter" style="filled" fillcolor=red]; + } subgraph cluster_6 { color=blue 8 [label="Enter property" style="filled" fillcolor=red]; @@ -51,24 +49,23 @@ digraph nullability_kt { 12 -> {8} [color=green]; 8 -> {9}; 9 -> {13} [color=green]; + 6 -> {7}; subgraph cluster_7 { - color=red - 14 [label="Enter function getter" style="filled" fillcolor=red]; - 15 [label="Exit function getter" style="filled" fillcolor=red]; - } - 14 -> {15}; - - subgraph cluster_8 { color=red 18 [label="Enter function fdata" style="filled" fillcolor=red]; 19 [label="Exit function fdata" style="filled" fillcolor=red]; } 18 -> {19}; - subgraph cluster_9 { + subgraph cluster_8 { color=red 20 [label="Enter class Q" style="filled" fillcolor=red]; + subgraph cluster_9 { + color=blue + 14 [label="Enter function getter" style="filled" fillcolor=red]; + 15 [label="Exit function getter" style="filled" fillcolor=red]; + } subgraph cluster_10 { color=blue 16 [label="Enter property" style="filled" fillcolor=red]; @@ -79,6 +76,7 @@ digraph nullability_kt { 20 -> {16} [color=green]; 16 -> {17}; 17 -> {21} [color=green]; + 14 -> {15}; subgraph cluster_11 { color=red @@ -90,13 +88,6 @@ digraph nullability_kt { 24 -> {23}; subgraph cluster_12 { - color=red - 25 [label="Enter function getter" style="filled" fillcolor=red]; - 26 [label="Exit function getter" style="filled" fillcolor=red]; - } - 25 -> {26}; - - subgraph cluster_13 { color=red 30 [label="Enter function fdata" style="filled" fillcolor=red]; 32 [label="Const: Null(null)"]; @@ -110,9 +101,14 @@ digraph nullability_kt { 33 -> {34} [style=dotted]; 34 -> {31} [style=dotted]; - subgraph cluster_14 { + subgraph cluster_13 { color=red 35 [label="Enter class QImpl" style="filled" fillcolor=red]; + subgraph cluster_14 { + color=blue + 25 [label="Enter function getter" style="filled" fillcolor=red]; + 26 [label="Exit function getter" style="filled" fillcolor=red]; + } subgraph cluster_15 { color=blue 27 [label="Enter property" style="filled" fillcolor=red]; @@ -125,6 +121,7 @@ digraph nullability_kt { 27 -> {29}; 28 -> {36} [color=green]; 29 -> {28}; + 25 -> {26}; subgraph cluster_16 { color=red @@ -136,20 +133,6 @@ digraph nullability_kt { 39 -> {38}; subgraph cluster_17 { - color=red - 40 [label="Enter function getter" style="filled" fillcolor=red]; - 41 [label="Exit function getter" style="filled" fillcolor=red]; - } - 40 -> {41}; - - subgraph cluster_18 { - color=red - 42 [label="Enter function setter" style="filled" fillcolor=red]; - 43 [label="Exit function setter" style="filled" fillcolor=red]; - } - 42 -> {43}; - - subgraph cluster_19 { color=red 47 [label="Enter function fdata" style="filled" fillcolor=red]; 49 [label="Const: Null(null)"]; @@ -163,9 +146,19 @@ digraph nullability_kt { 50 -> {51} [style=dotted]; 51 -> {48} [style=dotted]; - subgraph cluster_20 { + subgraph cluster_18 { color=red 52 [label="Enter class QImplMutable" style="filled" fillcolor=red]; + subgraph cluster_19 { + color=blue + 42 [label="Enter function setter" style="filled" fillcolor=red]; + 43 [label="Exit function setter" style="filled" fillcolor=red]; + } + subgraph cluster_20 { + color=blue + 40 [label="Enter function getter" style="filled" fillcolor=red]; + 41 [label="Exit function getter" style="filled" fillcolor=red]; + } subgraph cluster_21 { color=blue 44 [label="Enter property" style="filled" fillcolor=red]; @@ -178,6 +171,8 @@ digraph nullability_kt { 44 -> {46}; 45 -> {53} [color=green]; 46 -> {45}; + 40 -> {41}; + 42 -> {43}; subgraph cluster_22 { color=red @@ -189,20 +184,6 @@ digraph nullability_kt { 56 -> {55}; subgraph cluster_23 { - color=red - 57 [label="Enter function getter" style="filled" fillcolor=red]; - 59 [label="Const: Null(null)"]; - 60 [label="Jump: ^ Null(null)"]; - 61 [label="Stub" style="filled" fillcolor=gray]; - 58 [label="Exit function getter" style="filled" fillcolor=red]; - } - 57 -> {59}; - 59 -> {60}; - 60 -> {58}; - 60 -> {61} [style=dotted]; - 61 -> {58} [style=dotted]; - - subgraph cluster_24 { color=red 64 [label="Enter function fdata" style="filled" fillcolor=red]; 66 [label="Const: Null(null)"]; @@ -216,9 +197,17 @@ digraph nullability_kt { 67 -> {68} [style=dotted]; 68 -> {65} [style=dotted]; - subgraph cluster_25 { + subgraph cluster_24 { color=red 69 [label="Enter class QImplWithCustomGetter" style="filled" fillcolor=red]; + subgraph cluster_25 { + color=blue + 57 [label="Enter function getter" style="filled" fillcolor=red]; + 59 [label="Const: Null(null)"]; + 60 [label="Jump: ^ Null(null)"]; + 61 [label="Stub" style="filled" fillcolor=gray]; + 58 [label="Exit function getter" style="filled" fillcolor=red]; + } subgraph cluster_26 { color=blue 62 [label="Enter property" style="filled" fillcolor=red]; @@ -229,6 +218,11 @@ digraph nullability_kt { 69 -> {62} [color=green]; 62 -> {63}; 63 -> {70} [color=green]; + 57 -> {59}; + 59 -> {60}; + 60 -> {58}; + 60 -> {61} [style=dotted]; + 61 -> {58} [style=dotted]; subgraph cluster_27 { color=red diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/receivers/thisOfExtensionProperty.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/receivers/thisOfExtensionProperty.dot index 0ac9cd9e915..de1f69e75a8 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/receivers/thisOfExtensionProperty.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/receivers/thisOfExtensionProperty.dot @@ -11,15 +11,13 @@ digraph thisOfExtensionProperty_kt { 0 -> {1} [color=green]; subgraph cluster_1 { - color=red - 2 [label="Enter function getter" style="filled" fillcolor=red]; - 3 [label="Exit function getter" style="filled" fillcolor=red]; - } - 2 -> {3}; - - subgraph cluster_2 { color=red 6 [label="Enter class B" style="filled" fillcolor=red]; + subgraph cluster_2 { + color=blue + 2 [label="Enter function getter" style="filled" fillcolor=red]; + 3 [label="Exit function getter" style="filled" fillcolor=red]; + } subgraph cluster_3 { color=blue 4 [label="Enter property" style="filled" fillcolor=red]; @@ -30,24 +28,31 @@ digraph thisOfExtensionProperty_kt { 6 -> {4} [color=green]; 4 -> {5}; 5 -> {7} [color=green]; + 2 -> {3}; subgraph cluster_4 { color=red - 8 [label="Enter function getter" style="filled" fillcolor=red]; + 19 [label="Enter property" style="filled" fillcolor=red]; subgraph cluster_5 { color=blue - 11 [label="Enter &&"]; - 12 [label="Access variable this@R|/check_1|"]; - 13 [label="Type operator: (this@R|/check_1| is R|B|)"]; - 14 [label="Exit left part of &&"]; - 15 [label="Enter right part of &&"]; - 16 [label="Access variable R|/B.b|"]; - 10 [label="Exit &&"]; + 8 [label="Enter function getter" style="filled" fillcolor=red]; + subgraph cluster_6 { + color=blue + 11 [label="Enter &&"]; + 12 [label="Access variable this@R|/check_1|"]; + 13 [label="Type operator: (this@R|/check_1| is R|B|)"]; + 14 [label="Exit left part of &&"]; + 15 [label="Enter right part of &&"]; + 16 [label="Access variable R|/B.b|"]; + 10 [label="Exit &&"]; + } + 17 [label="Jump: ^ (this@R|/check_1| is R|B|) && this@R|/check_1|.R|/B.b|"]; + 18 [label="Stub" style="filled" fillcolor=gray]; + 9 [label="Exit function getter" style="filled" fillcolor=red]; } - 17 [label="Jump: ^ (this@R|/check_1| is R|B|) && this@R|/check_1|.R|/B.b|"]; - 18 [label="Stub" style="filled" fillcolor=gray]; - 9 [label="Exit function getter" style="filled" fillcolor=red]; + 20 [label="Exit property" style="filled" fillcolor=red]; } + 19 -> {20}; 8 -> {11}; 10 -> {17}; 11 -> {12}; @@ -60,31 +65,30 @@ digraph thisOfExtensionProperty_kt { 17 -> {18} [style=dotted]; 18 -> {9} [style=dotted]; - subgraph cluster_6 { - color=red - 19 [label="Enter property" style="filled" fillcolor=red]; - 20 [label="Exit property" style="filled" fillcolor=red]; - } - 19 -> {20}; - subgraph cluster_7 { color=red - 21 [label="Enter function getter" style="filled" fillcolor=red]; + 33 [label="Enter property" style="filled" fillcolor=red]; subgraph cluster_8 { color=blue - 24 [label="Enter &&"]; - 25 [label="Access variable this@R|/check_2|"]; - 26 [label="Type operator: (this@R|/check_2| is R|B|)"]; - 27 [label="Exit left part of &&"]; - 28 [label="Enter right part of &&"]; - 29 [label="Access variable this@R|/check_2|"]; - 30 [label="Access variable R|/B.b|"]; - 23 [label="Exit &&"]; + 21 [label="Enter function getter" style="filled" fillcolor=red]; + subgraph cluster_9 { + color=blue + 24 [label="Enter &&"]; + 25 [label="Access variable this@R|/check_2|"]; + 26 [label="Type operator: (this@R|/check_2| is R|B|)"]; + 27 [label="Exit left part of &&"]; + 28 [label="Enter right part of &&"]; + 29 [label="Access variable this@R|/check_2|"]; + 30 [label="Access variable R|/B.b|"]; + 23 [label="Exit &&"]; + } + 31 [label="Jump: ^ (this@R|/check_2| is R|B|) && this@R|/check_2|.R|/B.b|"]; + 32 [label="Stub" style="filled" fillcolor=gray]; + 22 [label="Exit function getter" style="filled" fillcolor=red]; } - 31 [label="Jump: ^ (this@R|/check_2| is R|B|) && this@R|/check_2|.R|/B.b|"]; - 32 [label="Stub" style="filled" fillcolor=gray]; - 22 [label="Exit function getter" style="filled" fillcolor=red]; + 34 [label="Exit property" style="filled" fillcolor=red]; } + 33 -> {34}; 21 -> {24}; 23 -> {31}; 24 -> {25}; @@ -98,11 +102,4 @@ digraph thisOfExtensionProperty_kt { 31 -> {32} [style=dotted]; 32 -> {22} [style=dotted]; - subgraph cluster_9 { - color=red - 33 [label="Enter property" style="filled" fillcolor=red]; - 34 [label="Exit property" style="filled" fillcolor=red]; - } - 33 -> {34}; - } 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 4f1ffc23068..1b7689c0651 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/safeCalls/assignSafeCall.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/safeCalls/assignSafeCall.dot @@ -27,22 +27,20 @@ digraph assignSafeCall_kt { 7 -> {4} [style=dotted]; subgraph cluster_2 { - color=red - 8 [label="Enter function getter" style="filled" fillcolor=red]; - 9 [label="Exit function getter" style="filled" fillcolor=red]; - } - 8 -> {9}; - - subgraph cluster_3 { color=red 13 [label="Enter function bar" style="filled" fillcolor=red]; 14 [label="Exit function bar" style="filled" fillcolor=red]; } 13 -> {14}; - subgraph cluster_4 { + subgraph cluster_3 { color=red 15 [label="Enter class A" style="filled" fillcolor=red]; + subgraph cluster_4 { + color=blue + 8 [label="Enter function getter" style="filled" fillcolor=red]; + 9 [label="Exit function getter" style="filled" fillcolor=red]; + } subgraph cluster_5 { color=blue 10 [label="Enter property" style="filled" fillcolor=red]; @@ -55,6 +53,7 @@ digraph assignSafeCall_kt { 10 -> {12}; 11 -> {16} [color=green]; 12 -> {11}; + 8 -> {9}; subgraph cluster_6 { color=red @@ -249,22 +248,20 @@ digraph assignSafeCall_kt { 88 -> {89}; subgraph cluster_21 { - color=red - 90 [label="Enter function getter" style="filled" fillcolor=red]; - 91 [label="Exit function getter" style="filled" fillcolor=red]; - } - 90 -> {91}; - - subgraph cluster_22 { color=red 94 [label="Enter function bar" style="filled" fillcolor=red]; 95 [label="Exit function bar" style="filled" fillcolor=red]; } 94 -> {95}; - subgraph cluster_23 { + subgraph cluster_22 { color=red 96 [label="Enter class B" style="filled" fillcolor=red]; + subgraph cluster_23 { + color=blue + 90 [label="Enter function getter" style="filled" fillcolor=red]; + 91 [label="Exit function getter" style="filled" fillcolor=red]; + } subgraph cluster_24 { color=blue 92 [label="Enter property" style="filled" fillcolor=red]; @@ -275,6 +272,7 @@ digraph assignSafeCall_kt { 96 -> {92} [color=green]; 92 -> {93}; 93 -> {97} [color=green]; + 90 -> {91}; subgraph cluster_25 { 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 a2ba64be3fd..57f380d2d53 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/smartCastInInit.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/smartCastInInit.dot @@ -50,15 +50,13 @@ digraph smartCastInInit_kt { 14 -> {13}; subgraph cluster_5 { - color=red - 15 [label="Enter function getter" style="filled" fillcolor=red]; - 16 [label="Exit function getter" style="filled" fillcolor=red]; - } - 15 -> {16}; - - subgraph cluster_6 { color=red 27 [label="Enter class Main" style="filled" fillcolor=red]; + subgraph cluster_6 { + color=blue + 15 [label="Enter function getter" style="filled" fillcolor=red]; + 16 [label="Exit function getter" style="filled" fillcolor=red]; + } subgraph cluster_7 { color=blue 17 [label="Enter property" style="filled" fillcolor=red]; @@ -83,6 +81,7 @@ digraph smartCastInInit_kt { 27 -> {17} [color=green]; 17 -> {18}; 18 -> {19} [color=green]; + 15 -> {16}; 19 -> {21}; 20 -> {28} [color=green]; 21 -> {22}; diff --git a/compiler/fir/analysis-tests/testData/resolve/smartcasts/smartcastToNothing.dot b/compiler/fir/analysis-tests/testData/resolve/smartcasts/smartcastToNothing.dot index 880f862df8e..bc750b1a91a 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/smartcastToNothing.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/smartcastToNothing.dot @@ -37,46 +37,44 @@ digraph smartcastToNothing_kt { subgraph cluster_2 { color=red - 12 [label="Enter function getter" style="filled" fillcolor=red]; - 14 [label="Const: Int(1)"]; - 15 [label="Jump: ^ Int(1)"]; - 16 [label="Stub" style="filled" fillcolor=gray]; - 13 [label="Exit function getter" style="filled" fillcolor=red]; + 17 [label="Enter property" style="filled" fillcolor=red]; + subgraph cluster_3 { + color=blue + 12 [label="Enter function getter" style="filled" fillcolor=red]; + 14 [label="Const: Int(1)"]; + 15 [label="Jump: ^ Int(1)"]; + 16 [label="Stub" style="filled" fillcolor=gray]; + 13 [label="Exit function getter" style="filled" fillcolor=red]; + } + 18 [label="Exit property" style="filled" fillcolor=red]; } + 17 -> {18}; 12 -> {14}; 14 -> {15}; 15 -> {13}; 15 -> {16} [style=dotted]; 16 -> {13} [style=dotted]; - subgraph cluster_3 { - color=red - 17 [label="Enter property" style="filled" fillcolor=red]; - 18 [label="Exit property" style="filled" fillcolor=red]; - } - 17 -> {18}; - subgraph cluster_4 { color=red - 19 [label="Enter function getter" style="filled" fillcolor=red]; - 21 [label="Const: Int(2)"]; - 22 [label="Jump: ^ Int(2)"]; - 23 [label="Stub" style="filled" fillcolor=gray]; - 20 [label="Exit function getter" style="filled" fillcolor=red]; + 24 [label="Enter property" style="filled" fillcolor=red]; + subgraph cluster_5 { + color=blue + 19 [label="Enter function getter" style="filled" fillcolor=red]; + 21 [label="Const: Int(2)"]; + 22 [label="Jump: ^ Int(2)"]; + 23 [label="Stub" style="filled" fillcolor=gray]; + 20 [label="Exit function getter" style="filled" fillcolor=red]; + } + 25 [label="Exit property" style="filled" fillcolor=red]; } + 24 -> {25}; 19 -> {21}; 21 -> {22}; 22 -> {20}; 22 -> {23} [style=dotted]; 23 -> {20} [style=dotted]; - subgraph cluster_5 { - color=red - 24 [label="Enter property" style="filled" fillcolor=red]; - 25 [label="Exit property" style="filled" fillcolor=red]; - } - 24 -> {25}; - subgraph cluster_6 { color=red 26 [label="Enter function myListOf" style="filled" fillcolor=red]; @@ -103,22 +101,18 @@ digraph smartcastToNothing_kt { 34 -> {33}; subgraph cluster_8 { - color=red - 35 [label="Enter function getter" style="filled" fillcolor=red]; - 36 [label="Exit function getter" style="filled" fillcolor=red]; - } - 35 -> {36}; - - subgraph cluster_9 { - color=red - 40 [label="Enter function getter" style="filled" fillcolor=red]; - 41 [label="Exit function getter" style="filled" fillcolor=red]; - } - 40 -> {41}; - - subgraph cluster_10 { color=red 45 [label="Enter class A" style="filled" fillcolor=red]; + subgraph cluster_9 { + color=blue + 40 [label="Enter function getter" style="filled" fillcolor=red]; + 41 [label="Exit function getter" style="filled" fillcolor=red]; + } + subgraph cluster_10 { + color=blue + 35 [label="Enter function getter" style="filled" fillcolor=red]; + 36 [label="Exit function getter" style="filled" fillcolor=red]; + } subgraph cluster_11 { color=blue 37 [label="Enter property" style="filled" fillcolor=red]; @@ -137,9 +131,11 @@ digraph smartcastToNothing_kt { 37 -> {39}; 38 -> {42} [color=green]; 39 -> {38}; + 35 -> {36}; 42 -> {44}; 43 -> {46} [color=green]; 44 -> {43}; + 40 -> {41}; subgraph cluster_13 { 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 6300d12cdc8..0053111dbf6 100644 --- a/compiler/fir/analysis-tests/testData/resolve/smartcasts/stability/overridenOpenVal.dot +++ b/compiler/fir/analysis-tests/testData/resolve/smartcasts/stability/overridenOpenVal.dot @@ -13,15 +13,13 @@ digraph overridenOpenVal_kt { 2 -> {1}; subgraph cluster_1 { - color=red - 3 [label="Enter function getter" style="filled" fillcolor=red]; - 4 [label="Exit function getter" style="filled" fillcolor=red]; - } - 3 -> {4}; - - subgraph cluster_2 { color=red 8 [label="Enter class A" style="filled" fillcolor=red]; + subgraph cluster_2 { + color=blue + 3 [label="Enter function getter" style="filled" fillcolor=red]; + 4 [label="Exit function getter" style="filled" fillcolor=red]; + } subgraph cluster_3 { color=blue 5 [label="Enter property" style="filled" fillcolor=red]; @@ -34,6 +32,7 @@ digraph overridenOpenVal_kt { 5 -> {7}; 6 -> {9} [color=green]; 7 -> {6}; + 3 -> {4}; 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 0433c672260..8012d258f22 100644 --- a/compiler/fir/analysis-tests/testData/resolveWithStdlib/delegates/delegateWithAnonymousObject.dot +++ b/compiler/fir/analysis-tests/testData/resolveWithStdlib/delegates/delegateWithAnonymousObject.dot @@ -119,6 +119,25 @@ digraph delegateWithAnonymousObject_kt { color=red 66 [label="Enter class IssuesListUserProfile" style="filled" fillcolor=red]; subgraph cluster_12 { + color=blue + 48 [label="Enter function setter" style="filled" fillcolor=red]; + 50 [label="Access variable D|/IssuesListUserProfile.issueListView|"]; + 51 [label="Access variable this@R|/IssuesListUserProfile|"]; + 52 [label="Access variable R|/issueListView|"]; + 53 [label="Function call: D|/IssuesListUserProfile.issueListView|.R|FakeOverride|(...)"]; + 49 [label="Exit function setter" style="filled" fillcolor=red]; + } + subgraph cluster_13 { + color=blue + 41 [label="Enter function getter" style="filled" fillcolor=red]; + 43 [label="Access variable D|/IssuesListUserProfile.issueListView|"]; + 44 [label="Access variable this@R|/IssuesListUserProfile|"]; + 45 [label="Function call: D|/IssuesListUserProfile.issueListView|.R|FakeOverride|(...)"]; + 46 [label="Jump: ^ D|/IssuesListUserProfile.issueListView|.R|FakeOverride|(this@R|/IssuesListUserProfile|, ::R|/IssuesListUserProfile.issueListView|)"]; + 47 [label="Stub" style="filled" fillcolor=gray]; + 42 [label="Exit function getter" style="filled" fillcolor=red]; + } + subgraph cluster_14 { color=blue 54 [label="Enter property" style="filled" fillcolor=red]; 56 [label="Postponed enter to lambda"]; @@ -129,7 +148,7 @@ digraph delegateWithAnonymousObject_kt { 61 [label="Access variable this@R|/IssuesListUserProfile|"]; 62 [label="Function call: this@R|/IssuesListUserProfile|.R|/delegate|(...).#(...)"]; 63 [label="Postponed enter to lambda"]; - subgraph cluster_13 { + subgraph cluster_15 { color=blue 21 [label="Enter function anonymousFunction" style="filled" fillcolor=red]; 23 [label="Exit anonymous object"]; @@ -139,25 +158,6 @@ digraph delegateWithAnonymousObject_kt { 65 [label="Function call: this@R|/IssuesListUserProfile|.R|/delegate|(...)"]; 55 [label="Exit property" style="filled" fillcolor=red]; } - subgraph cluster_14 { - color=blue - 48 [label="Enter function setter" style="filled" fillcolor=red]; - 50 [label="Access variable D|/IssuesListUserProfile.issueListView|"]; - 51 [label="Access variable this@R|/IssuesListUserProfile|"]; - 52 [label="Access variable R|/issueListView|"]; - 53 [label="Function call: D|/IssuesListUserProfile.issueListView|.R|FakeOverride|(...)"]; - 49 [label="Exit function setter" style="filled" fillcolor=red]; - } - subgraph cluster_15 { - color=blue - 41 [label="Enter function getter" style="filled" fillcolor=red]; - 43 [label="Access variable D|/IssuesListUserProfile.issueListView|"]; - 44 [label="Access variable this@R|/IssuesListUserProfile|"]; - 45 [label="Function call: D|/IssuesListUserProfile.issueListView|.R|FakeOverride|(...)"]; - 46 [label="Jump: ^ D|/IssuesListUserProfile.issueListView|.R|FakeOverride|(this@R|/IssuesListUserProfile|, ::R|/IssuesListUserProfile.issueListView|)"]; - 47 [label="Stub" style="filled" fillcolor=gray]; - 42 [label="Exit function getter" style="filled" fillcolor=red]; - } 67 [label="Exit class IssuesListUserProfile" style="filled" fillcolor=red]; } 66 -> {54} [color=green]; @@ -174,7 +174,6 @@ digraph delegateWithAnonymousObject_kt { 63 -> {21} [color=red]; 64 -> {65}; 65 -> {55}; - 65 -> {41 48} [color=red]; 21 -> {23}; 21 -> {24 27 32} [color=red]; 23 -> {22}; diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraphBuilder.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraphBuilder.kt index 1511b05c3c7..5d89d6ae508 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraphBuilder.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraphBuilder.kt @@ -89,7 +89,7 @@ class ControlFlowGraphBuilder { val previousNode = entersToPostponedAnonymousFunctions[function.symbol] ?: enterToLocalClassesMembers[function.symbol] - ?: if (!isInplace && graphs.topOrNull()?.let { it.kind == ControlFlowGraph.Kind.Function } == true) { + ?: if (!isInplace && function !is FirPropertyAccessor && graphs.topOrNull()?.let { it.kind == ControlFlowGraph.Kind.Function } == true) { lastNodes.top() } else { null