b55fda0c55
In order to properly analyze top-level property initialization, a control-flow graph must be created for FirFiles. This change adds the foundation for the file CFG and updates body resolve to create the CFG. Checking the CFG for proper initialization is separated into a following change to ease code review. KT-56683
889 lines
36 KiB
Plaintext
Vendored
889 lines
36 KiB
Plaintext
Vendored
digraph kt44814_kt {
|
|
graph [nodesep=3]
|
|
node [shape=box penwidth=2]
|
|
edge [penwidth=2]
|
|
|
|
subgraph cluster_0 {
|
|
color=red
|
|
0 [label="Enter file kt44814.kt [1]" style="filled" fillcolor=red];
|
|
1 [label="Exit file kt44814.kt [1]" style="filled" fillcolor=red];
|
|
}
|
|
0 -> {1} [color=green];
|
|
|
|
subgraph cluster_1 {
|
|
color=red
|
|
2 [label="Enter class FlyweightCapableTreeStructure [2]" style="filled" fillcolor=red];
|
|
subgraph cluster_2 {
|
|
color=blue
|
|
3 [label="Enter function <init> [3]" style="filled" fillcolor=red];
|
|
4 [label="Delegated constructor call: super<R|kotlin/Any|>() [3]" style="filled" fillcolor=yellow];
|
|
5 [label="Exit function <init> [3]" style="filled" fillcolor=red];
|
|
}
|
|
6 [label="Exit class FlyweightCapableTreeStructure [2]" style="filled" fillcolor=red];
|
|
}
|
|
2 -> {3} [color=green];
|
|
2 -> {6} [style=dotted];
|
|
2 -> {3} [style=dashed];
|
|
3 -> {4};
|
|
4 -> {5};
|
|
5 -> {6} [color=green];
|
|
|
|
subgraph cluster_3 {
|
|
color=red
|
|
7 [label="Enter class FirSourceElement [2]" style="filled" fillcolor=red];
|
|
subgraph cluster_4 {
|
|
color=blue
|
|
8 [label="Enter function <init> [3]" style="filled" fillcolor=red];
|
|
9 [label="Delegated constructor call: super<R|kotlin/Any|>() [3]" style="filled" fillcolor=yellow];
|
|
10 [label="Exit function <init> [3]" style="filled" fillcolor=red];
|
|
}
|
|
11 [label="Exit class FirSourceElement [2]" style="filled" fillcolor=red];
|
|
}
|
|
7 -> {8} [color=green];
|
|
7 -> {11} [style=dotted];
|
|
7 -> {8} [style=dashed];
|
|
8 -> {9};
|
|
9 -> {10};
|
|
10 -> {11} [color=green];
|
|
|
|
subgraph cluster_5 {
|
|
color=red
|
|
12 [label="Enter class FirPsiSourceElement [2]" style="filled" fillcolor=red];
|
|
subgraph cluster_6 {
|
|
color=blue
|
|
13 [label="Enter property [3]" style="filled" fillcolor=red];
|
|
14 [label="Access variable R|<local>/psi| [3]"];
|
|
15 [label="Exit property [3]" style="filled" fillcolor=red];
|
|
}
|
|
subgraph cluster_7 {
|
|
color=blue
|
|
16 [label="Enter property [3]" style="filled" fillcolor=red];
|
|
17 [label="Access variable R|<local>/lighterASTNode| [3]"];
|
|
18 [label="Exit property [3]" style="filled" fillcolor=red];
|
|
}
|
|
subgraph cluster_8 {
|
|
color=blue
|
|
19 [label="Enter property [3]" style="filled" fillcolor=red];
|
|
20 [label="Access variable R|<local>/treeStructure| [3]"];
|
|
21 [label="Exit property [3]" style="filled" fillcolor=red];
|
|
}
|
|
subgraph cluster_9 {
|
|
color=blue
|
|
22 [label="Enter function <init> [3]" style="filled" fillcolor=red];
|
|
23 [label="Delegated constructor call: super<R|FirSourceElement|>() [3]" style="filled" fillcolor=yellow];
|
|
24 [label="Exit function <init> [3]" style="filled" fillcolor=red];
|
|
}
|
|
25 [label="Exit class FirPsiSourceElement [2]" style="filled" fillcolor=red];
|
|
}
|
|
12 -> {13} [color=green];
|
|
12 -> {25} [style=dotted];
|
|
12 -> {13 16 19 22} [style=dashed];
|
|
13 -> {14};
|
|
14 -> {15};
|
|
15 -> {16} [color=green];
|
|
16 -> {17};
|
|
17 -> {18};
|
|
18 -> {19} [color=green];
|
|
19 -> {20};
|
|
20 -> {21};
|
|
21 -> {22} [color=green];
|
|
22 -> {23};
|
|
23 -> {24};
|
|
24 -> {25} [color=green];
|
|
|
|
subgraph cluster_10 {
|
|
color=red
|
|
26 [label="Enter class FirLightSourceElement [2]" style="filled" fillcolor=red];
|
|
subgraph cluster_11 {
|
|
color=blue
|
|
27 [label="Enter property [3]" style="filled" fillcolor=red];
|
|
28 [label="Access variable R|<local>/lighterASTNode| [3]"];
|
|
29 [label="Exit property [3]" style="filled" fillcolor=red];
|
|
}
|
|
subgraph cluster_12 {
|
|
color=blue
|
|
30 [label="Enter property [3]" style="filled" fillcolor=red];
|
|
31 [label="Access variable R|<local>/treeStructure| [3]"];
|
|
32 [label="Exit property [3]" style="filled" fillcolor=red];
|
|
}
|
|
subgraph cluster_13 {
|
|
color=blue
|
|
33 [label="Enter function <init> [3]" style="filled" fillcolor=red];
|
|
34 [label="Delegated constructor call: super<R|FirSourceElement|>() [3]" style="filled" fillcolor=yellow];
|
|
35 [label="Exit function <init> [3]" style="filled" fillcolor=red];
|
|
}
|
|
36 [label="Exit class FirLightSourceElement [2]" style="filled" fillcolor=red];
|
|
}
|
|
26 -> {27} [color=green];
|
|
26 -> {36} [style=dotted];
|
|
26 -> {27 30 33} [style=dashed];
|
|
27 -> {28};
|
|
28 -> {29};
|
|
29 -> {30} [color=green];
|
|
30 -> {31};
|
|
31 -> {32};
|
|
32 -> {33} [color=green];
|
|
33 -> {34};
|
|
34 -> {35};
|
|
35 -> {36} [color=green];
|
|
|
|
subgraph cluster_14 {
|
|
color=red
|
|
37 [label="Enter class PsiElement [2]" style="filled" fillcolor=red];
|
|
subgraph cluster_15 {
|
|
color=blue
|
|
38 [label="Enter function <init> [3]" style="filled" fillcolor=red];
|
|
39 [label="Delegated constructor call: super<R|kotlin/Any|>() [3]" style="filled" fillcolor=yellow];
|
|
40 [label="Exit function <init> [3]" style="filled" fillcolor=red];
|
|
}
|
|
41 [label="Exit class PsiElement [2]" style="filled" fillcolor=red];
|
|
}
|
|
37 -> {38} [color=green];
|
|
37 -> {41} [style=dotted];
|
|
37 -> {38} [style=dashed];
|
|
38 -> {39};
|
|
39 -> {40};
|
|
40 -> {41} [color=green];
|
|
|
|
subgraph cluster_16 {
|
|
color=red
|
|
42 [label="Enter class ASTNode [2]" style="filled" fillcolor=red];
|
|
subgraph cluster_17 {
|
|
color=blue
|
|
43 [label="Enter function <init> [3]" style="filled" fillcolor=red];
|
|
44 [label="Delegated constructor call: super<R|kotlin/Any|>() [3]" style="filled" fillcolor=yellow];
|
|
45 [label="Exit function <init> [3]" style="filled" fillcolor=red];
|
|
}
|
|
46 [label="Exit class ASTNode [2]" style="filled" fillcolor=red];
|
|
}
|
|
42 -> {43} [color=green];
|
|
42 -> {46} [style=dotted];
|
|
42 -> {43} [style=dashed];
|
|
43 -> {44};
|
|
44 -> {45};
|
|
45 -> {46} [color=green];
|
|
|
|
subgraph cluster_18 {
|
|
color=red
|
|
47 [label="Enter class LighterASTNode [2]" style="filled" fillcolor=red];
|
|
subgraph cluster_19 {
|
|
color=blue
|
|
48 [label="Enter property [3]" style="filled" fillcolor=red];
|
|
49 [label="Access variable R|<local>/_children| [3]"];
|
|
50 [label="Exit property [3]" style="filled" fillcolor=red];
|
|
}
|
|
subgraph cluster_20 {
|
|
color=blue
|
|
51 [label="Enter property [3]" style="filled" fillcolor=red];
|
|
52 [label="Access qualifier /TokenType [3]"];
|
|
53 [label="Access variable R|/TokenType.Companion.MODIFIER_LIST| [3]"];
|
|
54 [label="Exit property [3]" style="filled" fillcolor=red];
|
|
}
|
|
subgraph cluster_21 {
|
|
color=blue
|
|
55 [label="Enter function <init> [3]" style="filled" fillcolor=red];
|
|
56 [label="Enter default value of _children [3]"];
|
|
subgraph cluster_22 {
|
|
color=blue
|
|
57 [label="Enter default value of _children [4]" style="filled" fillcolor=red];
|
|
58 [label="Function call: R|kotlin/collections/emptyList|<R|LighterASTNode?|>() [4]" style="filled" fillcolor=yellow];
|
|
59 [label="Exit default value of _children [4]" style="filled" fillcolor=red];
|
|
}
|
|
60 [label="Exit default value of _children [3]"];
|
|
61 [label="Delegated constructor call: super<R|kotlin/Any|>() [3]" style="filled" fillcolor=yellow];
|
|
62 [label="Exit function <init> [3]" style="filled" fillcolor=red];
|
|
}
|
|
63 [label="Exit class LighterASTNode [2]" style="filled" fillcolor=red];
|
|
}
|
|
47 -> {48} [color=green];
|
|
47 -> {63} [style=dotted];
|
|
47 -> {48 51 55} [style=dashed];
|
|
48 -> {49};
|
|
49 -> {50};
|
|
50 -> {51} [color=green];
|
|
51 -> {52};
|
|
52 -> {53};
|
|
53 -> {54};
|
|
54 -> {55} [color=green];
|
|
55 -> {56};
|
|
56 -> {57 60};
|
|
56 -> {57} [style=dashed];
|
|
57 -> {58};
|
|
58 -> {59};
|
|
59 -> {60};
|
|
60 -> {61};
|
|
61 -> {62};
|
|
62 -> {63} [color=green];
|
|
|
|
subgraph cluster_23 {
|
|
color=red
|
|
64 [label="Enter function getChildren [3]" style="filled" fillcolor=red];
|
|
subgraph cluster_24 {
|
|
color=blue
|
|
65 [label="Enter block [3]"];
|
|
66 [label="Access variable R|/LighterASTNode._children| [3]"];
|
|
67 [label="Jump: ^getChildren this@R|/LighterASTNode|.R|/LighterASTNode._children| [3]"];
|
|
68 [label="Stub [3]" style="filled" fillcolor=gray];
|
|
69 [label="Exit block [3]" style="filled" fillcolor=gray];
|
|
}
|
|
70 [label="Exit function getChildren [3]" style="filled" fillcolor=red];
|
|
}
|
|
64 -> {65};
|
|
65 -> {66};
|
|
66 -> {67};
|
|
67 -> {70};
|
|
67 -> {68} [style=dotted];
|
|
68 -> {69} [style=dotted];
|
|
69 -> {70} [style=dotted];
|
|
|
|
subgraph cluster_25 {
|
|
color=red
|
|
71 [label="Enter class TokenType [2]" style="filled" fillcolor=red];
|
|
subgraph cluster_26 {
|
|
color=blue
|
|
72 [label="Enter function <init> [3]" style="filled" fillcolor=red];
|
|
73 [label="Delegated constructor call: super<R|kotlin/Any|>() [3]" style="filled" fillcolor=yellow];
|
|
74 [label="Exit function <init> [3]" style="filled" fillcolor=red];
|
|
}
|
|
75 [label="Exit class TokenType [2]" style="filled" fillcolor=red];
|
|
}
|
|
71 -> {72} [color=green];
|
|
71 -> {75} [style=dotted];
|
|
71 -> {72} [style=dashed];
|
|
72 -> {73};
|
|
73 -> {74};
|
|
74 -> {75} [color=green];
|
|
|
|
subgraph cluster_27 {
|
|
color=red
|
|
76 [label="Enter class Companion [3]" style="filled" fillcolor=red];
|
|
subgraph cluster_28 {
|
|
color=blue
|
|
77 [label="Enter property [4]" style="filled" fillcolor=red];
|
|
78 [label="Function call: R|/TokenType.TokenType|() [4]" style="filled" fillcolor=yellow];
|
|
79 [label="Exit property [4]" style="filled" fillcolor=red];
|
|
}
|
|
subgraph cluster_29 {
|
|
color=blue
|
|
80 [label="Enter function <init> [4]" style="filled" fillcolor=red];
|
|
81 [label="Delegated constructor call: super<R|kotlin/Any|>() [4]" style="filled" fillcolor=yellow];
|
|
82 [label="Exit function <init> [4]" style="filled" fillcolor=red];
|
|
}
|
|
83 [label="Exit class Companion [3]" style="filled" fillcolor=red];
|
|
}
|
|
76 -> {77} [color=green];
|
|
76 -> {83} [style=dotted];
|
|
76 -> {77 80} [style=dashed];
|
|
77 -> {78};
|
|
78 -> {79};
|
|
79 -> {80} [color=green];
|
|
80 -> {81};
|
|
81 -> {82};
|
|
82 -> {83} [color=green];
|
|
|
|
subgraph cluster_30 {
|
|
color=red
|
|
84 [label="Enter class KtModifierKeywordToken [2]" style="filled" fillcolor=red];
|
|
subgraph cluster_31 {
|
|
color=blue
|
|
85 [label="Enter function <init> [3]" style="filled" fillcolor=red];
|
|
86 [label="Delegated constructor call: super<R|kotlin/Any|>() [3]" style="filled" fillcolor=yellow];
|
|
87 [label="Exit function <init> [3]" style="filled" fillcolor=red];
|
|
}
|
|
88 [label="Exit class KtModifierKeywordToken [2]" style="filled" fillcolor=red];
|
|
}
|
|
84 -> {85} [color=green];
|
|
84 -> {88} [style=dotted];
|
|
84 -> {85} [style=dashed];
|
|
85 -> {86};
|
|
86 -> {87};
|
|
87 -> {88} [color=green];
|
|
|
|
subgraph cluster_32 {
|
|
color=red
|
|
89 [label="Enter class KtModifierList [2]" style="filled" fillcolor=red];
|
|
subgraph cluster_33 {
|
|
color=blue
|
|
90 [label="Enter function <init> [3]" style="filled" fillcolor=red];
|
|
91 [label="Delegated constructor call: super<R|PsiElement|>() [3]" style="filled" fillcolor=yellow];
|
|
92 [label="Exit function <init> [3]" style="filled" fillcolor=red];
|
|
}
|
|
93 [label="Exit class KtModifierList [2]" style="filled" fillcolor=red];
|
|
}
|
|
89 -> {90} [color=green];
|
|
89 -> {93} [style=dotted];
|
|
89 -> {90} [style=dashed];
|
|
90 -> {91};
|
|
91 -> {92};
|
|
92 -> {93} [color=green];
|
|
|
|
subgraph cluster_34 {
|
|
color=red
|
|
94 [label="Enter class KtModifierListOwner [2]" style="filled" fillcolor=red];
|
|
subgraph cluster_35 {
|
|
color=blue
|
|
95 [label="Enter property [3]" style="filled" fillcolor=red];
|
|
96 [label="Function call: R|/KtModifierList.KtModifierList|() [3]" style="filled" fillcolor=yellow];
|
|
97 [label="Exit property [3]" style="filled" fillcolor=red];
|
|
}
|
|
subgraph cluster_36 {
|
|
color=blue
|
|
98 [label="Enter function <init> [3]" style="filled" fillcolor=red];
|
|
99 [label="Delegated constructor call: super<R|PsiElement|>() [3]" style="filled" fillcolor=yellow];
|
|
100 [label="Exit function <init> [3]" style="filled" fillcolor=red];
|
|
}
|
|
101 [label="Exit class KtModifierListOwner [2]" style="filled" fillcolor=red];
|
|
}
|
|
94 -> {95} [color=green];
|
|
94 -> {101} [style=dotted];
|
|
94 -> {95 98} [style=dashed];
|
|
95 -> {96};
|
|
96 -> {97};
|
|
97 -> {98} [color=green];
|
|
98 -> {99};
|
|
99 -> {100};
|
|
100 -> {101} [color=green];
|
|
|
|
subgraph cluster_37 {
|
|
color=red
|
|
102 [label="Enter class FirModifier [2]" style="filled" fillcolor=red];
|
|
subgraph cluster_38 {
|
|
color=blue
|
|
103 [label="Enter property [3]" style="filled" fillcolor=red];
|
|
104 [label="Access variable R|<local>/node| [3]"];
|
|
105 [label="Exit property [3]" style="filled" fillcolor=red];
|
|
}
|
|
subgraph cluster_39 {
|
|
color=blue
|
|
106 [label="Enter property [3]" style="filled" fillcolor=red];
|
|
107 [label="Access variable R|<local>/token| [3]"];
|
|
108 [label="Exit property [3]" style="filled" fillcolor=red];
|
|
}
|
|
subgraph cluster_40 {
|
|
color=blue
|
|
109 [label="Enter function <init> [3]" style="filled" fillcolor=red];
|
|
110 [label="Delegated constructor call: super<R|kotlin/Any|>() [3]" style="filled" fillcolor=yellow];
|
|
111 [label="Exit function <init> [3]" style="filled" fillcolor=red];
|
|
}
|
|
112 [label="Exit class FirModifier [2]" style="filled" fillcolor=red];
|
|
}
|
|
102 -> {103} [color=green];
|
|
102 -> {112} [style=dotted];
|
|
102 -> {103 106 109} [style=dashed];
|
|
103 -> {104};
|
|
104 -> {105};
|
|
105 -> {106} [color=green];
|
|
106 -> {107};
|
|
107 -> {108};
|
|
108 -> {109} [color=green];
|
|
109 -> {110};
|
|
110 -> {111};
|
|
111 -> {112} [color=green];
|
|
|
|
subgraph cluster_41 {
|
|
color=red
|
|
113 [label="Enter class FirPsiModifier [3]" style="filled" fillcolor=red];
|
|
subgraph cluster_42 {
|
|
color=blue
|
|
114 [label="Enter function <init> [4]" style="filled" fillcolor=red];
|
|
115 [label="Access variable R|<local>/node| [4]"];
|
|
116 [label="Access variable R|<local>/token| [4]"];
|
|
117 [label="Delegated constructor call: super<R|FirModifier<ASTNode>|>(...) [4]" style="filled" fillcolor=yellow];
|
|
118 [label="Exit function <init> [4]" style="filled" fillcolor=red];
|
|
}
|
|
119 [label="Exit class FirPsiModifier [3]" style="filled" fillcolor=red];
|
|
}
|
|
113 -> {114} [color=green];
|
|
113 -> {119} [style=dotted];
|
|
113 -> {114} [style=dashed];
|
|
114 -> {115};
|
|
115 -> {116};
|
|
116 -> {117};
|
|
117 -> {118};
|
|
118 -> {119} [color=green];
|
|
|
|
subgraph cluster_43 {
|
|
color=red
|
|
120 [label="Enter class FirLightModifier [3]" style="filled" fillcolor=red];
|
|
subgraph cluster_44 {
|
|
color=blue
|
|
121 [label="Enter property [4]" style="filled" fillcolor=red];
|
|
122 [label="Access variable R|<local>/tree| [4]"];
|
|
123 [label="Exit property [4]" style="filled" fillcolor=red];
|
|
}
|
|
subgraph cluster_45 {
|
|
color=blue
|
|
124 [label="Enter function <init> [4]" style="filled" fillcolor=red];
|
|
125 [label="Access variable R|<local>/node| [4]"];
|
|
126 [label="Access variable R|<local>/token| [4]"];
|
|
127 [label="Delegated constructor call: super<R|FirModifier<LighterASTNode>|>(...) [4]" style="filled" fillcolor=yellow];
|
|
128 [label="Exit function <init> [4]" style="filled" fillcolor=red];
|
|
}
|
|
129 [label="Exit class FirLightModifier [3]" style="filled" fillcolor=red];
|
|
}
|
|
120 -> {121} [color=green];
|
|
120 -> {129} [style=dotted];
|
|
120 -> {121 124} [style=dashed];
|
|
121 -> {122};
|
|
122 -> {123};
|
|
123 -> {124} [color=green];
|
|
124 -> {125};
|
|
125 -> {126};
|
|
126 -> {127};
|
|
127 -> {128};
|
|
128 -> {129} [color=green];
|
|
|
|
subgraph cluster_46 {
|
|
color=red
|
|
130 [label="Enter class FirModifierList [2]" style="filled" fillcolor=red];
|
|
subgraph cluster_47 {
|
|
color=blue
|
|
131 [label="Enter property [3]" style="filled" fillcolor=red];
|
|
132 [label="Function call: R|kotlin/collections/emptyList|<R|FirModifier<*>|>() [3]" style="filled" fillcolor=yellow];
|
|
133 [label="Exit property [3]" style="filled" fillcolor=red];
|
|
}
|
|
subgraph cluster_48 {
|
|
color=blue
|
|
134 [label="Enter function <init> [3]" style="filled" fillcolor=red];
|
|
135 [label="Delegated constructor call: super<R|kotlin/Any|>() [3]" style="filled" fillcolor=yellow];
|
|
136 [label="Exit function <init> [3]" style="filled" fillcolor=red];
|
|
}
|
|
137 [label="Exit class FirModifierList [2]" style="filled" fillcolor=red];
|
|
}
|
|
130 -> {131} [color=green];
|
|
130 -> {137} [style=dotted];
|
|
130 -> {131 134} [style=dashed];
|
|
131 -> {132};
|
|
132 -> {133};
|
|
133 -> {134} [color=green];
|
|
134 -> {135};
|
|
135 -> {136};
|
|
136 -> {137} [color=green];
|
|
|
|
subgraph cluster_49 {
|
|
color=red
|
|
138 [label="Enter class FirPsiModifierList [3]" style="filled" fillcolor=red];
|
|
subgraph cluster_50 {
|
|
color=blue
|
|
139 [label="Enter property [4]" style="filled" fillcolor=red];
|
|
140 [label="Access variable R|<local>/modifierList| [4]"];
|
|
141 [label="Exit property [4]" style="filled" fillcolor=red];
|
|
}
|
|
subgraph cluster_51 {
|
|
color=blue
|
|
142 [label="Enter function <init> [4]" style="filled" fillcolor=red];
|
|
143 [label="Delegated constructor call: super<R|FirModifierList|>() [4]" style="filled" fillcolor=yellow];
|
|
144 [label="Exit function <init> [4]" style="filled" fillcolor=red];
|
|
}
|
|
145 [label="Exit class FirPsiModifierList [3]" style="filled" fillcolor=red];
|
|
}
|
|
138 -> {139} [color=green];
|
|
138 -> {145} [style=dotted];
|
|
138 -> {139 142} [style=dashed];
|
|
139 -> {140};
|
|
140 -> {141};
|
|
141 -> {142} [color=green];
|
|
142 -> {143};
|
|
143 -> {144};
|
|
144 -> {145} [color=green];
|
|
|
|
subgraph cluster_52 {
|
|
color=red
|
|
146 [label="Enter class FirLightModifierList [3]" style="filled" fillcolor=red];
|
|
subgraph cluster_53 {
|
|
color=blue
|
|
147 [label="Enter property [4]" style="filled" fillcolor=red];
|
|
148 [label="Access variable R|<local>/modifierList| [4]"];
|
|
149 [label="Exit property [4]" style="filled" fillcolor=red];
|
|
}
|
|
subgraph cluster_54 {
|
|
color=blue
|
|
150 [label="Enter property [4]" style="filled" fillcolor=red];
|
|
151 [label="Access variable R|<local>/tree| [4]"];
|
|
152 [label="Exit property [4]" style="filled" fillcolor=red];
|
|
}
|
|
subgraph cluster_55 {
|
|
color=blue
|
|
153 [label="Enter function <init> [4]" style="filled" fillcolor=red];
|
|
154 [label="Delegated constructor call: super<R|FirModifierList|>() [4]" style="filled" fillcolor=yellow];
|
|
155 [label="Exit function <init> [4]" style="filled" fillcolor=red];
|
|
}
|
|
156 [label="Exit class FirLightModifierList [3]" style="filled" fillcolor=red];
|
|
}
|
|
146 -> {147} [color=green];
|
|
146 -> {156} [style=dotted];
|
|
146 -> {147 150 153} [style=dashed];
|
|
147 -> {148};
|
|
148 -> {149};
|
|
149 -> {150} [color=green];
|
|
150 -> {151};
|
|
151 -> {152};
|
|
152 -> {153} [color=green];
|
|
153 -> {154};
|
|
154 -> {155};
|
|
155 -> {156} [color=green];
|
|
|
|
subgraph cluster_56 {
|
|
color=red
|
|
157 [label="Enter class Companion [3]" style="filled" fillcolor=red];
|
|
subgraph cluster_57 {
|
|
color=blue
|
|
158 [label="Enter function <init> [4]" style="filled" fillcolor=red];
|
|
159 [label="Delegated constructor call: super<R|kotlin/Any|>() [4]" style="filled" fillcolor=yellow];
|
|
160 [label="Exit function <init> [4]" style="filled" fillcolor=red];
|
|
}
|
|
161 [label="Exit class Companion [3]" style="filled" fillcolor=red];
|
|
}
|
|
157 -> {158} [color=green];
|
|
157 -> {161} [style=dotted];
|
|
157 -> {158} [style=dashed];
|
|
158 -> {159};
|
|
159 -> {160};
|
|
160 -> {161} [color=green];
|
|
|
|
subgraph cluster_58 {
|
|
color=red
|
|
162 [label="Enter function getModifierList [4]" style="filled" fillcolor=red];
|
|
subgraph cluster_59 {
|
|
color=blue
|
|
163 [label="Enter block [4]"];
|
|
subgraph cluster_60 {
|
|
color=blue
|
|
164 [label="Enter when [4]"];
|
|
165 [label="Access variable this@R|/FirModifierList.Companion.getModifierList| [4]"];
|
|
subgraph cluster_61 {
|
|
color=blue
|
|
166 [label="Enter when branch condition [4]"];
|
|
167 [label="Exit $subj [4]"];
|
|
168 [label="Const: Null(null) [4]"];
|
|
169 [label="Equality operator == [4]"];
|
|
170 [label="Exit when branch condition [4]"];
|
|
}
|
|
subgraph cluster_62 {
|
|
color=blue
|
|
171 [label="Enter when branch condition [4]"];
|
|
172 [label="Exit $subj [4]"];
|
|
173 [label="Type operator: ($subj$ is R|FirPsiSourceElement|) [4]"];
|
|
174 [label="Exit when branch condition [4]"];
|
|
}
|
|
subgraph cluster_63 {
|
|
color=blue
|
|
175 [label="Enter when branch condition [4]"];
|
|
176 [label="Exit $subj [4]"];
|
|
177 [label="Type operator: ($subj$ is R|FirLightSourceElement|) [4]"];
|
|
178 [label="Exit when branch condition [4]"];
|
|
}
|
|
179 [label="Enter when branch result [4]"];
|
|
subgraph cluster_64 {
|
|
color=blue
|
|
180 [label="Enter block [4]"];
|
|
181 [label="Access variable R|/FirLightSourceElement.lighterASTNode| [4]"];
|
|
182 [label="Access variable R|/FirLightSourceElement.treeStructure| [4]"];
|
|
183 [label="Function call: this@R|/FirModifierList.Companion.getModifierList|.R|/FirLightSourceElement.lighterASTNode|.R|/LighterASTNode.getChildren|(...) [4]" style="filled" fillcolor=yellow];
|
|
184 [label="Postponed enter to lambda [4]"];
|
|
subgraph cluster_65 {
|
|
color=blue
|
|
185 [label="Enter function <anonymous> [5]" style="filled" fillcolor=red];
|
|
subgraph cluster_66 {
|
|
color=blue
|
|
186 [label="Enter block [5]"];
|
|
187 [label="Access variable R|<local>/it| [5]"];
|
|
188 [label="Enter safe call [5]"];
|
|
189 [label="Access variable R|/LighterASTNode.tokenType| [5]"];
|
|
190 [label="Exit safe call [5]"];
|
|
191 [label="Access qualifier /TokenType [5]"];
|
|
192 [label="Access variable R|/TokenType.Companion.MODIFIER_LIST| [5]"];
|
|
193 [label="Equality operator == [5]"];
|
|
194 [label="Exit block [5]"];
|
|
}
|
|
195 [label="Exit function <anonymous> [5]" style="filled" fillcolor=red];
|
|
}
|
|
196 [label="Postponed exit from lambda [4]"];
|
|
197 [label="Function call: this@R|/FirModifierList.Companion.getModifierList|.R|/FirLightSourceElement.lighterASTNode|.R|/LighterASTNode.getChildren|(...).R|kotlin/collections/find|<R|LighterASTNode?|>(...) [4]" style="filled" fillcolor=yellow];
|
|
198 [label="Exit lhs of ?: [4]"];
|
|
199 [label="Enter rhs of ?: [4]"];
|
|
200 [label="Const: Null(null) [4]"];
|
|
201 [label="Jump: ^getModifierList Null(null) [4]"];
|
|
202 [label="Stub [4]" style="filled" fillcolor=gray];
|
|
203 [label="Lhs of ?: is not null [4]"];
|
|
204 [label="Exit ?: [4]"];
|
|
205 [label="Variable declaration: lval modifierListNode: R|LighterASTNode| [4]"];
|
|
206 [label="Access variable R|<local>/modifierListNode| [4]"];
|
|
207 [label="Access variable R|/FirLightSourceElement.treeStructure| [4]"];
|
|
208 [label="Function call: R|/FirModifierList.FirLightModifierList.FirLightModifierList|(...) [4]" style="filled" fillcolor=yellow];
|
|
209 [label="Exit block [4]"];
|
|
}
|
|
210 [label="Exit when branch result [4]"];
|
|
211 [label="Enter when branch result [4]"];
|
|
subgraph cluster_67 {
|
|
color=blue
|
|
212 [label="Enter block [4]"];
|
|
213 [label="Access variable R|/FirPsiSourceElement.psi| [4]"];
|
|
214 [label="Type operator: (this@R|/FirModifierList.Companion.getModifierList|.R|/FirPsiSourceElement.psi| as? R|KtModifierListOwner|) [4]"];
|
|
215 [label="Enter safe call [4]"];
|
|
216 [label="Access variable R|/KtModifierListOwner.modifierList| [4]"];
|
|
217 [label="Enter safe call [4]"];
|
|
218 [label="Postponed enter to lambda [4]"];
|
|
subgraph cluster_68 {
|
|
color=blue
|
|
219 [label="Enter function <anonymous> [5]" style="filled" fillcolor=red];
|
|
subgraph cluster_69 {
|
|
color=blue
|
|
220 [label="Enter block [5]"];
|
|
221 [label="Access variable R|<local>/it| [5]"];
|
|
222 [label="Function call: R|/FirModifierList.FirPsiModifierList.FirPsiModifierList|(...) [5]" style="filled" fillcolor=yellow];
|
|
223 [label="Exit block [5]"];
|
|
}
|
|
224 [label="Exit function <anonymous> [5]" style="filled" fillcolor=red];
|
|
}
|
|
225 [label="Postponed exit from lambda [4]"];
|
|
226 [label="Function call: $subj$.R|kotlin/let|<R|KtModifierList|, R|FirModifierList.FirPsiModifierList|>(...) [4]" style="filled" fillcolor=yellow];
|
|
227 [label="Exit safe call [4]"];
|
|
228 [label="Exit safe call [4]"];
|
|
229 [label="Exit block [4]"];
|
|
}
|
|
230 [label="Exit when branch result [4]"];
|
|
231 [label="Merge postponed lambda exits [4]"];
|
|
232 [label="Enter when branch result [4]"];
|
|
subgraph cluster_70 {
|
|
color=blue
|
|
233 [label="Enter block [4]"];
|
|
234 [label="Const: Null(null) [4]"];
|
|
235 [label="Exit block [4]"];
|
|
}
|
|
236 [label="Exit when branch result [4]"];
|
|
237 [label="Exit when [4]"];
|
|
}
|
|
238 [label="Jump: ^getModifierList when (this@R|/FirModifierList.Companion.getModifierList|) {
|
|
==($subj$, Null(null)) -> {
|
|
Null(null)
|
|
}
|
|
($subj$ is R|FirPsiSourceElement|) -> {
|
|
(this@R|/FirModifierList.Companion.getModifierList|.R|/FirPsiSourceElement.psi| as? R|KtModifierListOwner|)?.{ $subj$.R|/KtModifierListOwner.modifierList| }?.{ $subj$.R|kotlin/let|<R|KtModifierList|, R|FirModifierList.FirPsiModifierList|>(<L> = let@fun <anonymous>(it: R|KtModifierList|): R|FirModifierList.FirPsiModifierList| <inline=Inline, kind=EXACTLY_ONCE> {
|
|
^ R|/FirModifierList.FirPsiModifierList.FirPsiModifierList|(R|<local>/it|)
|
|
}
|
|
) }
|
|
}
|
|
($subj$ is R|FirLightSourceElement|) -> {
|
|
lval modifierListNode: R|LighterASTNode| = this@R|/FirModifierList.Companion.getModifierList|.R|/FirLightSourceElement.lighterASTNode|.R|/LighterASTNode.getChildren|(this@R|/FirModifierList.Companion.getModifierList|.R|/FirLightSourceElement.treeStructure|).R|kotlin/collections/find|<R|LighterASTNode?|>(<L> = find@fun <anonymous>(it: R|LighterASTNode?|): R|kotlin/Boolean| <inline=Inline, kind=UNKNOWN> {
|
|
^ ==(R|<local>/it|?.{ $subj$.R|/LighterASTNode.tokenType| }, Q|TokenType|.R|/TokenType.Companion.MODIFIER_LIST|)
|
|
}
|
|
) ?: ^getModifierList Null(null)
|
|
R|/FirModifierList.FirLightModifierList.FirLightModifierList|(R|<local>/modifierListNode|, this@R|/FirModifierList.Companion.getModifierList|.R|/FirLightSourceElement.treeStructure|)
|
|
}
|
|
}
|
|
[4]"];
|
|
239 [label="Stub [4]" style="filled" fillcolor=gray];
|
|
240 [label="Exit block [4]" style="filled" fillcolor=gray];
|
|
}
|
|
241 [label="Exit function getModifierList [4]" style="filled" fillcolor=red];
|
|
}
|
|
162 -> {163};
|
|
163 -> {164};
|
|
164 -> {165};
|
|
165 -> {166};
|
|
166 -> {167};
|
|
167 -> {168};
|
|
168 -> {169};
|
|
169 -> {170};
|
|
170 -> {171 232};
|
|
171 -> {172};
|
|
172 -> {173};
|
|
173 -> {174};
|
|
174 -> {175 211};
|
|
175 -> {176};
|
|
176 -> {177};
|
|
177 -> {178};
|
|
178 -> {179};
|
|
179 -> {180};
|
|
180 -> {181};
|
|
181 -> {182};
|
|
182 -> {183};
|
|
183 -> {184};
|
|
184 -> {185 196 197};
|
|
184 -> {185} [style=dashed];
|
|
185 -> {186};
|
|
186 -> {187};
|
|
187 -> {188 190};
|
|
188 -> {189};
|
|
189 -> {190};
|
|
190 -> {191};
|
|
191 -> {192};
|
|
192 -> {193};
|
|
193 -> {194};
|
|
194 -> {195};
|
|
195 -> {196};
|
|
196 -> {184} [color=green style=dashed];
|
|
196 -> {197} [color=green];
|
|
196 -> {204} [style=dotted];
|
|
197 -> {198};
|
|
198 -> {199 203};
|
|
199 -> {200};
|
|
200 -> {201};
|
|
201 -> {241};
|
|
201 -> {202} [style=dotted];
|
|
202 -> {204} [style=dotted];
|
|
203 -> {204};
|
|
204 -> {205};
|
|
205 -> {206};
|
|
206 -> {207};
|
|
207 -> {208};
|
|
208 -> {209};
|
|
209 -> {210};
|
|
210 -> {237};
|
|
211 -> {212};
|
|
212 -> {213};
|
|
213 -> {214};
|
|
214 -> {215 227};
|
|
215 -> {216};
|
|
216 -> {217 227};
|
|
217 -> {218};
|
|
218 -> {219 226};
|
|
218 -> {225} [style=dotted];
|
|
218 -> {219} [style=dashed];
|
|
219 -> {220};
|
|
220 -> {221};
|
|
221 -> {222};
|
|
222 -> {223};
|
|
223 -> {224};
|
|
224 -> {225};
|
|
225 -> {226} [color=green];
|
|
225 -> {231} [color=red];
|
|
226 -> {228};
|
|
227 -> {228};
|
|
228 -> {229 231};
|
|
229 -> {230};
|
|
230 -> {237};
|
|
231 -> {237} [color=red];
|
|
232 -> {233};
|
|
233 -> {234};
|
|
234 -> {235};
|
|
235 -> {236};
|
|
236 -> {237};
|
|
237 -> {238};
|
|
238 -> {241};
|
|
238 -> {239} [style=dotted];
|
|
239 -> {240} [style=dotted];
|
|
240 -> {241} [style=dotted];
|
|
|
|
subgraph cluster_71 {
|
|
color=red
|
|
242 [label="Enter function boxImpl [4]" style="filled" fillcolor=red];
|
|
subgraph cluster_72 {
|
|
color=blue
|
|
243 [label="Enter block [4]"];
|
|
244 [label="Function call: R|/LighterASTNode.LighterASTNode|() [4]" style="filled" fillcolor=yellow];
|
|
245 [label="Function call: R|kotlin/collections/listOf|<R|LighterASTNode|>(...) [4]" style="filled" fillcolor=yellow];
|
|
246 [label="Function call: R|/LighterASTNode.LighterASTNode|(...) [4]" style="filled" fillcolor=yellow];
|
|
247 [label="Function call: R|/FlyweightCapableTreeStructure.FlyweightCapableTreeStructure|() [4]" style="filled" fillcolor=yellow];
|
|
248 [label="Function call: R|/FirLightSourceElement.FirLightSourceElement|(...) [4]" style="filled" fillcolor=yellow];
|
|
249 [label="Variable declaration: lval sourceElement: R|FirSourceElement?| [4]"];
|
|
250 [label="Access variable R|<local>/sourceElement| [4]"];
|
|
251 [label="Function call: (this@R|/FirModifierList.Companion|, R|<local>/sourceElement|).R|/FirModifierList.Companion.getModifierList|() [4]" style="filled" fillcolor=yellow];
|
|
252 [label="Variable declaration: lval result: R|FirModifierList?| [4]"];
|
|
subgraph cluster_73 {
|
|
color=blue
|
|
253 [label="Enter when [4]"];
|
|
subgraph cluster_74 {
|
|
color=blue
|
|
254 [label="Enter when branch condition [4]"];
|
|
255 [label="Access variable R|<local>/result| [4]"];
|
|
256 [label="Type operator: (R|<local>/result| is R|FirModifierList.FirLightModifierList|) [4]"];
|
|
257 [label="Exit when branch condition [4]"];
|
|
}
|
|
subgraph cluster_75 {
|
|
color=blue
|
|
258 [label="Enter when branch condition else [4]"];
|
|
259 [label="Exit when branch condition [4]"];
|
|
}
|
|
260 [label="Enter when branch result [4]"];
|
|
subgraph cluster_76 {
|
|
color=blue
|
|
261 [label="Enter block [4]"];
|
|
262 [label="Const: String(Fail) [4]"];
|
|
263 [label="Exit block [4]"];
|
|
}
|
|
264 [label="Exit when branch result [4]"];
|
|
265 [label="Enter when branch result [4]"];
|
|
subgraph cluster_77 {
|
|
color=blue
|
|
266 [label="Enter block [4]"];
|
|
267 [label="Const: String(OK) [4]"];
|
|
268 [label="Exit block [4]"];
|
|
}
|
|
269 [label="Exit when branch result [4]"];
|
|
270 [label="Exit when [4]"];
|
|
}
|
|
271 [label="Jump: ^boxImpl when () {
|
|
(R|<local>/result| is R|FirModifierList.FirLightModifierList|) -> {
|
|
String(OK)
|
|
}
|
|
else -> {
|
|
String(Fail)
|
|
}
|
|
}
|
|
[4]"];
|
|
272 [label="Stub [4]" style="filled" fillcolor=gray];
|
|
273 [label="Exit block [4]" style="filled" fillcolor=gray];
|
|
}
|
|
274 [label="Exit function boxImpl [4]" style="filled" fillcolor=red];
|
|
}
|
|
242 -> {243};
|
|
243 -> {244};
|
|
244 -> {245};
|
|
245 -> {246};
|
|
246 -> {247};
|
|
247 -> {248};
|
|
248 -> {249};
|
|
249 -> {250};
|
|
250 -> {251};
|
|
251 -> {252};
|
|
252 -> {253};
|
|
253 -> {254};
|
|
254 -> {255};
|
|
255 -> {256};
|
|
256 -> {257};
|
|
257 -> {258 265};
|
|
258 -> {259};
|
|
259 -> {260};
|
|
260 -> {261};
|
|
261 -> {262};
|
|
262 -> {263};
|
|
263 -> {264};
|
|
264 -> {270};
|
|
265 -> {266};
|
|
266 -> {267};
|
|
267 -> {268};
|
|
268 -> {269};
|
|
269 -> {270};
|
|
270 -> {271};
|
|
271 -> {274};
|
|
271 -> {272} [style=dotted];
|
|
272 -> {273} [style=dotted];
|
|
273 -> {274} [style=dotted];
|
|
|
|
subgraph cluster_78 {
|
|
color=red
|
|
275 [label="Enter function box [2]" style="filled" fillcolor=red];
|
|
subgraph cluster_79 {
|
|
color=blue
|
|
276 [label="Enter block [2]"];
|
|
277 [label="Access qualifier /FirModifierList [2]"];
|
|
278 [label="Function call: Q|FirModifierList|.R|/FirModifierList.Companion.boxImpl|() [2]" style="filled" fillcolor=yellow];
|
|
279 [label="Jump: ^box Q|FirModifierList|.R|/FirModifierList.Companion.boxImpl|() [2]"];
|
|
280 [label="Stub [2]" style="filled" fillcolor=gray];
|
|
281 [label="Exit block [2]" style="filled" fillcolor=gray];
|
|
}
|
|
282 [label="Exit function box [2]" style="filled" fillcolor=red];
|
|
}
|
|
275 -> {276};
|
|
276 -> {277};
|
|
277 -> {278};
|
|
278 -> {279};
|
|
279 -> {282};
|
|
279 -> {280} [style=dotted];
|
|
280 -> {281} [style=dotted];
|
|
281 -> {282} [style=dotted];
|
|
|
|
}
|