digraph dataFlowInfoFromWhileCondition_kt { graph [nodesep=3] node [shape=box penwidth=2] edge [penwidth=2] subgraph cluster_0 { color=red 0 [label="Enter file dataFlowInfoFromWhileCondition.kt" style="filled" fillcolor=red]; 1 [label="Exit file dataFlowInfoFromWhileCondition.kt" style="filled" fillcolor=red]; } 0 -> {1} [color=green]; subgraph cluster_1 { color=red 2 [label="Enter class A" style="filled" fillcolor=red]; 3 [label="Exit class A" style="filled" fillcolor=red]; } 2 -> {3} [color=green]; subgraph cluster_2 { color=red 4 [label="Enter function foo" style="filled" fillcolor=red]; 5 [label="Exit function foo" style="filled" fillcolor=red]; } 4 -> {5}; subgraph cluster_3 { color=red 6 [label="Enter class B" style="filled" fillcolor=red]; 7 [label="Exit class B" style="filled" fillcolor=red]; } 6 -> {7} [color=green]; subgraph cluster_4 { color=red 8 [label="Enter class C" style="filled" fillcolor=red]; 9 [label="Exit class C" style="filled" fillcolor=red]; } 8 -> {9} [color=green]; subgraph cluster_5 { color=red 10 [label="Enter function test" style="filled" fillcolor=red]; subgraph cluster_6 { color=blue 11 [label="Enter block"]; 12 [label="Const: Null(null)"]; 13 [label="Variable declaration: lvar a: R|A?|"]; subgraph cluster_7 { color=blue 14 [label="Enter while loop"]; subgraph cluster_8 { color=blue 15 [label="Enter loop condition"]; subgraph cluster_9 { color=blue 16 [label="Enter ||"]; 17 [label="Access variable R|/a|"]; 18 [label="Type operator: (R|/a| is R|B|)"]; 19 [label="Exit left part of ||"]; 20 [label="Enter right part of ||"]; 21 [label="Access variable R|/a|"]; 22 [label="Type operator: (R|/a| is R|C|)"]; 23 [label="Exit ||"]; } 24 [label="Exit loop condition"]; } subgraph cluster_10 { color=blue 25 [label="Enter loop block"]; subgraph cluster_11 { color=blue 26 [label="Enter block"]; subgraph cluster_12 { color=blue 27 [label="Function call arguments enter"]; 28 [label="Access variable R|/a|"]; 29 [label="Smart cast: R|/a|"]; 30 [label="Function call arguments exit"]; } 31 [label="Function call: R|/a|.R|/A.foo|()" style="filled" fillcolor=yellow]; 32 [label="Exit block"]; } 33 [label="Exit loop block"]; } 34 [label="Exit while loop"]; } 35 [label="Exit block"]; } 36 [label="Exit function test" style="filled" fillcolor=red]; } 10 -> {11}; 11 -> {12}; 12 -> {13}; 13 -> {14}; 14 -> {15}; 15 -> {16}; 16 -> {17}; 17 -> {18}; 18 -> {19}; 19 -> {20 23}; 20 -> {21}; 21 -> {22}; 22 -> {23}; 23 -> {24}; 24 -> {25 34}; 25 -> {26}; 26 -> {27}; 27 -> {28}; 28 -> {29}; 29 -> {30}; 30 -> {31}; 31 -> {32}; 32 -> {33}; 33 -> {15} [color=green style=dashed]; 34 -> {35}; 35 -> {36}; }