13
Files
4888
Nodes
13367
Edges
458
Impact targets
1635
Data values
66
State regions
0
Defects
137
Motifs
MVP pipeline
Repository → CISG → Data/State Closure → Impact Engine → review scope
v0.9 technical view preserves one-hop direct evidence from bounded derived impact. Derived impact uses resolved local-call reachability and shared-state coupling; it is review scope, not a claim that every reachable entity will change at runtime.
Metrics
{
"loaded_files": 13,
"nodes": 4888,
"edges": 13367,
"node_types": {
"file": 13,
"function": 125,
"class": 9,
"method": 78,
"boundary_module": 22,
"control": 586,
"data_value": 1635,
"state_region": 66,
"module_binding": 19,
"data_sink": 229,
"boundary_call": 483,
"data_phi": 772,
"data_use": 452,
"data_undefined": 362,
"exception_handler": 19,
"effect": 2,
"exception_event": 9,
"boundary_exception": 7
},
"edge_types": {
"contains": 212,
"imports": 94,
"controls": 586,
"defines": 2407,
"reads_state": 210,
"reads_binding": 40,
"flows_to": 2991,
"guards": 703,
"contains_data": 686,
"calls": 3245,
"returns_value": 442,
"phi_input": 1544,
"contains_exception_handler": 19,
"writes_state": 68,
"aliases_at_definition": 47,
"effect": 47,
"exception_value": 8,
"raises": 9,
"exception_flow": 9
},
"resolved_local_calls": 610,
"boundary_calls": 2635,
"findings_by_category": {
"anomaly": 13,
"hotspot": 142
},
"findings_by_severity": {
"info": 155
},
"motif_instances": 137,
"motif_clusters": 30,
"data_values": 1635,
"phi_nodes": 772,
"data_edges": 8142,
"alias_edges": 47,
"state_regions": 66,
"state_reads": 210,
"state_writes": 68,
"module_binding_reads": 40,
"exception_handlers": 19,
"explicit_raises": 9,
"unresolved_local_uses": 0,
"warnings": 0
}Highest review breadth
| Kind | Target | Review breadth | Path |
|---|---|---|---|
| function | 616 | cli.py | |
| function | 265 | cache.py | |
| function | 224 | impact.py | |
| function | 218 | analyzer.py | |
| function | 216 | impact.py | |
| function | 196 | cli.py | |
| function | 193 | semantic_diff.py | |
| function | 186 | impact.py | |
| function | 175 | product_ui.py | |
| function | 174 | report.py | |
| function | 165 | semantic_diff.py | |
| function | 160 | pr_review.py | |
| function | 155 | impact.py | |
| function | 150 | product_ui.py | |
| function | 149 | report.py | |
| function | 149 | pr_review.py | |
| function | 142 | analyzer.py | |
| function | 140 | report.py | |
| function | 140 | product_ui.py | |
| function | 136 | analyzer.py |
Warnings
- None
Impact Engine
Direct = one-hop graph evidence. Derived = bounded resolved call paths + shared-state coupling. No single impact score is treated as truth.
Choose a target.
Code-Induced Semantic Graph
Overview shows 224 of 225 file/class/function entities. Full graph is in cisg.json / cisg.graphml.
Node evidence
Click a node.
SSA-like data flow
Local data footprint feeds Impact Engine but is not transitive across function boundaries.
| Relation | Source | Target | Evidence | Status |
|---|---|---|---|---|
| flows_to | callee#0 | low#1 | analyzer.py:32 | observed |
| flows_to | low#1 | tail#1 | analyzer.py:33 | observed |
| guards | tail#1 | branch | analyzer.py:34 | observed |
| guards | low#1 | branch | analyzer.py:36 | observed |
| guards | tail#1 | branch | analyzer.py:36 | observed |
| guards | low#1 | branch | analyzer.py:38 | observed |
| guards | tail#1 | branch | analyzer.py:38 | observed |
| guards | low#1 | branch | analyzer.py:40 | observed |
| guards | tail#1 | branch | analyzer.py:40 | observed |
| guards | low#1 | branch | analyzer.py:42 | observed |
| guards | low#1 | branch | analyzer.py:44 | observed |
| guards | tail#1 | branch | analyzer.py:44 | observed |
| flows_to | parts#0 | raw#1 | analyzer.py:60 | observed |
| returns_value | prefix#0 | return@61 | analyzer.py:61 | observed |
| returns_value | raw#1 | return@61 | analyzer.py:61 | observed |
| returns_value | text#0 | return@65 | analyzer.py:65 | observed |
| flows_to | path#0 | rel#1 | analyzer.py:69 | observed |
| flows_to | root#0 | rel#1 | analyzer.py:69 | observed |
| flows_to | rel#1 | parts#1 | analyzer.py:70 | observed |
| guards | parts#1 | branch | analyzer.py:71 | observed |
| flows_to | parts#1 | parts#2 | analyzer.py:72 | observed |
| phi_input | parts#2 | parts#3 | analyzer.py:71 | strongly_inferred |
| phi_input | parts#1 | parts#3 | analyzer.py:71 | strongly_inferred |
| returns_value | parts#3 | return@73 | analyzer.py:73 | observed |
| guards | n#0 | branch | analyzer.py:77 | observed |
| returns_value | n#0 | return@78 | analyzer.py:78 | observed |
| guards | n#0 | branch | analyzer.py:79 | observed |
| flows_to | n#0 | base#1 | analyzer.py:80 | observed |
| returns_value | base#1 | return@81 | analyzer.py:81 | observed |
| returns_value | n#0 | return@81 | analyzer.py:81 | observed |
| guards | n#0 | branch | analyzer.py:82 | observed |
| returns_value | n#0 | return@83 | analyzer.py:83 | observed |
| guards | n#0 | branch | analyzer.py:84 | observed |
| returns_value | n#0 | return@85 | analyzer.py:85 | observed |
| returns_value | n#0 | return@86 | analyzer.py:86 | observed |
| guards | level#0 | branch | analyzer.py:91 | observed |
| returns_value | module#0 | return@92 | analyzer.py:92 | observed |
| flows_to | current_module#0 | pkg#1 | analyzer.py:94 | observed |
| flows_to | level#0 | remove#1 | analyzer.py:95 | observed |
| guards | remove#1 | branch | analyzer.py:96 | observed |
| flows_to | remove#1 | pkg#2 | analyzer.py:97 | observed |
| flows_to | pkg#1 | pkg#2 | analyzer.py:97 | observed |
| phi_input | pkg#1 | pkg#3 | analyzer.py:96 | strongly_inferred |
| phi_input | pkg#2 | pkg#3 | analyzer.py:96 | strongly_inferred |
| guards | module#0 | branch | analyzer.py:98 | observed |
| flows_to | pkg#3 | expr@99 | analyzer.py:99 | observed |
| flows_to | module#0 | expr@99 | analyzer.py:99 | observed |
| returns_value | pkg#3 | return@100 | analyzer.py:100 | observed |
| guards | root#0 | for_loop | analyzer.py:105 | observed |
| flows_to | root#0 | p#1 | analyzer.py:105 | observed |
| guards | p#1 | branch | analyzer.py:106 | observed |
| guards | root#0 | branch | analyzer.py:106 | observed |
| flows_to | p#1 | size#1 | analyzer.py:109 | observed |
| guards | size#1 | branch | analyzer.py:112 | observed |
| guards | max_bytes#0 | branch | analyzer.py:112 | observed |
| flows_to | p#1 | expr@113 | analyzer.py:113 | observed |
| flows_to | size#1 | expr@113 | analyzer.py:113 | observed |
| flows_to | count#1 | count#2 | analyzer.py:115 | observed |
| guards | count#2 | branch | analyzer.py:116 | observed |
| guards | max_files#0 | branch | analyzer.py:116 | observed |
| flows_to | p#1 | expr@117 | analyzer.py:117 | observed |
| flows_to | p#1 | expr@119 | analyzer.py:119 | observed |
| phi_input | count#1 | count#3 | analyzer.py:105 | strongly_inferred |
| phi_input | count#2 | count#3 | analyzer.py:105 | strongly_inferred |
| phi_input | p#1 | p#2 | analyzer.py:105 | strongly_inferred |
| phi_input | p:undefined | p#2 | analyzer.py:105 | unresolved |
| phi_input | size#1 | size#2 | analyzer.py:105 | strongly_inferred |
| phi_input | size:undefined | size#2 | analyzer.py:105 | unresolved |
| flows_to | self#0 | expr@134 | analyzer.py:134 | observed |
| flows_to | kind#0 | expr@134 | analyzer.py:134 | observed |
| flows_to | n#0 | expr@134 | analyzer.py:134 | observed |
| flows_to | self#0 | expr@135 | analyzer.py:135 | observed |
| flows_to | n#0 | expr@135 | analyzer.py:135 | observed |
| flows_to | self#0 | expr@137 | analyzer.py:137 | observed |
| flows_to | n#0 | expr@137 | analyzer.py:137 | observed |
| flows_to | self#0 | expr@138 | analyzer.py:138 | observed |
| flows_to | n#0 | expr@138 | analyzer.py:138 | observed |
| flows_to | self#0 | expr@139 | analyzer.py:139 | observed |
| flows_to | n#0 | expr@139 | analyzer.py:139 | observed |
| flows_to | self#0 | expr@140 | analyzer.py:140 | observed |
| flows_to | n#0 | expr@140 | analyzer.py:140 | observed |
| flows_to | self#0 | expr@141 | analyzer.py:141 | observed |
| flows_to | n#0 | expr@141 | analyzer.py:141 | observed |
| flows_to | self#0 | expr@142 | analyzer.py:142 | observed |
| flows_to | n#0 | expr@142 | analyzer.py:142 | observed |
| flows_to | self#0 | expr@143 | analyzer.py:143 | observed |
| flows_to | n#0 | expr@143 | analyzer.py:143 | observed |
| flows_to | self#0 | expr@146 | analyzer.py:146 | observed |
| flows_to | n#0 | expr@146 | analyzer.py:146 | observed |
| guards | n#0 | for_loop | analyzer.py:147 | observed |
| flows_to | n#0 | h#1 | analyzer.py:147 | observed |
| guards | h#1 | branch | analyzer.py:148 | observed |
| flows_to | self#0 | expr@149 | analyzer.py:149 | observed |
| flows_to | h#1 | expr@149 | analyzer.py:149 | observed |
| guards | h#1 | branch | analyzer.py:151 | observed |
| flows_to | self#0 | expr@152 | analyzer.py:152 | observed |
| flows_to | h#1 | expr@152 | analyzer.py:152 | observed |
| phi_input | h#1 | h#2 | analyzer.py:147 | strongly_inferred |
| phi_input | h:undefined | h#2 | analyzer.py:147 | unresolved |
| flows_to | self#0 | expr@154 | analyzer.py:154 | observed |
| flows_to | n#0 | expr@154 | analyzer.py:154 | observed |
| flows_to | n#0 | callee#1 | analyzer.py:157 | observed |
| flows_to | self#0 | expr@158 | analyzer.py:158 | observed |
| flows_to | callee#1 | expr@158 | analyzer.py:158 | observed |
| flows_to | n#0 | expr@158 | analyzer.py:158 | observed |
| flows_to | callee#1 | effect_type#1 | analyzer.py:159 | observed |
| guards | effect_type#1 | branch | analyzer.py:160 | observed |
| flows_to | self#0 | expr@161 | analyzer.py:161 | observed |
| flows_to | effect_type#1 | expr@161 | analyzer.py:161 | observed |
| flows_to | callee#1 | expr@161 | analyzer.py:161 | observed |
| flows_to | n#0 | expr@161 | analyzer.py:161 | observed |
| flows_to | self#0 | expr@162 | analyzer.py:162 | observed |
| flows_to | n#0 | expr@162 | analyzer.py:162 | observed |
| flows_to | n#0 | text#1 | analyzer.py:165 | observed |
| guards | n#0 | branch | analyzer.py:166 | observed |
| flows_to | self#0 | expr@167 | analyzer.py:167 | observed |
| flows_to | text#1 | expr@167 | analyzer.py:167 | observed |
| flows_to | n#0 | expr@167 | analyzer.py:167 | observed |
| flows_to | self#0 | expr@168 | analyzer.py:168 | observed |
| flows_to | n#0 | expr@168 | analyzer.py:168 | observed |
| guards | n#0 | for_loop | analyzer.py:171 | observed |
| flows_to | n#0 | target#1 | analyzer.py:171 | observed |
| guards | target#1 | branch | analyzer.py:172 | observed |
| flows_to | self#0 | expr@173 | analyzer.py:173 | observed |
| flows_to | target#1 | expr@173 | analyzer.py:173 | observed |
| flows_to | n#0 | expr@173 | analyzer.py:173 | observed |
| phi_input | target#1 | target#2 | analyzer.py:171 | strongly_inferred |
| phi_input | target:undefined | target#2 | analyzer.py:171 | unresolved |
| flows_to | self#0 | expr@174 | analyzer.py:174 | observed |
| flows_to | n#0 | expr@174 | analyzer.py:174 | observed |
| guards | n#0 | branch | analyzer.py:177 | observed |
| flows_to | self#0 | expr@178 | analyzer.py:178 | observed |
| flows_to | n#0 | expr@178 | analyzer.py:178 | observed |
| flows_to | self#0 | expr@179 | analyzer.py:179 | observed |
| flows_to | n#0 | expr@179 | analyzer.py:179 | observed |
| guards | n#0 | branch | analyzer.py:182 | observed |
| flows_to | self#0 | expr@183 | analyzer.py:183 | observed |
| flows_to | n#0 | expr@183 | analyzer.py:183 | observed |
| flows_to | self#0 | expr@184 | analyzer.py:184 | observed |
| flows_to | n#0 | expr@184 | analyzer.py:184 | observed |
| guards | statements#0 | for_loop | analyzer.py:190 | observed |
| flows_to | statements#0 | st#1 | analyzer.py:190 | observed |
| aliases_at_definition | statements#0 | st#1 | analyzer.py:190 | observed |
| guards | terminated#1 | branch | analyzer.py:191 | observed |
| flows_to | issues#1 | expr@192 | analyzer.py:192 | observed |
| flows_to | file_rel#0 | expr@192 | analyzer.py:193 | observed |
| flows_to | owner#0 | expr@192 | analyzer.py:194 | observed |
| flows_to | st#1 | expr@192 | analyzer.py:194 | observed |
| phi_input | terminated#2 | terminated#3 | analyzer.py:191 | strongly_inferred |
| phi_input | terminated#1 | terminated#3 | analyzer.py:191 | strongly_inferred |
| guards | st#1 | branch | analyzer.py:198 | observed |
| phi_input | terminated#4 | terminated#5 | analyzer.py:198 | strongly_inferred |
| phi_input | terminated#3 | terminated#5 | analyzer.py:198 | strongly_inferred |
| flows_to | st#1 | child#1 | analyzer.py:201 | observed |
| flows_to | child_name#1 | child#1 | analyzer.py:201 | observed |
| guards | child#1 | branch | analyzer.py:202 | observed |
| flows_to | issues#1 | expr@203 | analyzer.py:203 | observed |
| flows_to | child#1 | expr@203 | analyzer.py:203 | observed |
| flows_to | file_rel#0 | expr@203 | analyzer.py:203 | observed |
| flows_to | owner#0 | expr@203 | analyzer.py:203 | observed |
| phi_input | child#1 | child#2 | analyzer.py:200 | strongly_inferred |
| phi_input | child:undefined | child#2 | analyzer.py:200 | unresolved |
| phi_input | child_name#1 | child_name#2 | analyzer.py:200 | strongly_inferred |
| phi_input | child_name:undefined | child_name#2 | analyzer.py:200 | unresolved |
| guards | st#1 | branch | analyzer.py:204 | observed |
| guards | st#1 | for_loop | analyzer.py:205 | observed |
| flows_to | st#1 | h#1 | analyzer.py:205 | observed |
| flows_to | issues#1 | expr@206 | analyzer.py:206 | observed |
| flows_to | h#1 | expr@206 | analyzer.py:206 | observed |
| flows_to | file_rel#0 | expr@206 | analyzer.py:206 | observed |
| flows_to | owner#0 | expr@206 | analyzer.py:206 | observed |
| phi_input | h#1 | h#2 | analyzer.py:205 | strongly_inferred |
| phi_input | h:undefined | h#2 | analyzer.py:205 | unresolved |
| phi_input | h#2 | h#3 | analyzer.py:204 | strongly_inferred |
| phi_input | h:undefined | h#3 | analyzer.py:204 | unresolved |
| phi_input | child#2 | child#3 | analyzer.py:190 | strongly_inferred |
| phi_input | child:undefined | child#3 | analyzer.py:190 | unresolved |
| phi_input | child_name#2 | child_name#3 | analyzer.py:190 | strongly_inferred |
| phi_input | child_name:undefined | child_name#3 | analyzer.py:190 | unresolved |
| phi_input | h#3 | h#4 | analyzer.py:190 | strongly_inferred |
| phi_input | h:undefined | h#4 | analyzer.py:190 | unresolved |
| phi_input | st#1 | st#2 | analyzer.py:190 | strongly_inferred |
| phi_input | st:undefined | st#2 | analyzer.py:190 | unresolved |
| phi_input | terminated#5 | terminated#6 | analyzer.py:190 | strongly_inferred |
| phi_input | terminated#1 | terminated#6 | analyzer.py:190 | strongly_inferred |
| returns_value | issues#1 | return@207 | analyzer.py:207 | observed |
| flows_to | fn#0 | clone#1 | analyzer.py:213 | observed |
| returns_value | fn#0 | return@215 | analyzer.py:215 | observed |
| flows_to | clone#1 | all_args#1 | analyzer.py:217 | observed |
| guards | all_args#1 | for_loop | analyzer.py:218 | observed |
| flows_to | all_args#1 | arg#1 | analyzer.py:218 | observed |
| aliases_at_definition | all_args#1 | arg#1 | analyzer.py:218 | observed |
| phi_input | arg#1 | arg#2 | analyzer.py:218 | strongly_inferred |
| phi_input | arg:undefined | arg#2 | analyzer.py:218 | unresolved |
| guards | clone#1 | branch | analyzer.py:220 | observed |
| guards | clone#1 | branch | analyzer.py:222 | observed |
| flows_to | Rename#1 | clone#2 | analyzer.py:229 | observed |
| flows_to | clone#1 | clone#2 | analyzer.py:229 | observed |
| flows_to | clone#2 | expr@230 | analyzer.py:230 | observed |
| returns_value | clone#2 | return@231 | analyzer.py:231 | observed |
| flows_to | fn#0 | raw#1 | analyzer.py:235 | observed |
| returns_value | raw#1 | return@236 | analyzer.py:236 | observed |
| flows_to | fn#0 | raw#1 | analyzer.py:246 | observed |
| returns_value | raw#1 | return@247 | analyzer.py:247 | observed |
| flows_to | text_or_lines#0 | lines#1 | analyzer.py:252 | observed |
| flows_to | fn#0 | start#1 | analyzer.py:253 | observed |
| flows_to | start#1 | end#1 | analyzer.py:254 | observed |
| flows_to | fn#0 | end#1 | analyzer.py:254 | observed |
| flows_to | lines#1 | raw#1 | analyzer.py:255 | observed |
| flows_to | start#1 | raw#1 | analyzer.py:255 | observed |
| flows_to | end#1 | raw#1 | analyzer.py:255 | observed |
| returns_value | raw#1 | return@256 | analyzer.py:256 | observed |
| flows_to | import_map#0 | payload#1 | analyzer.py:261 | observed |
| flows_to | module_globals#0 | payload#1 | analyzer.py:262 | observed |
| flows_to | payload#1 | raw#1 | analyzer.py:264 | observed |
| returns_value | raw#1 | return@265 | analyzer.py:265 | observed |
| guards | value#0 | branch | analyzer.py:274 | observed |
| returns_value | value#0 | return@275 | analyzer.py:275 | observed |
| flows_to | value#0 | out#1 | analyzer.py:276 | observed |
| flows_to | out#1 | ev#1 | analyzer.py:277 | observed |
| guards | ev#1 | branch | analyzer.py:278 | observed |
| flows_to | ev#1 | ev2#1 | analyzer.py:279 | observed |
| guards | ev2#1 | branch | analyzer.py:280 | observed |
| phi_input | ev2#1 | ev2#2 | analyzer.py:278 | strongly_inferred |
| phi_input | ev2:undefined | ev2#2 | analyzer.py:278 | unresolved |
| guards | key#1 | branch | analyzer.py:285 | observed |
| guards | out#1 | branch | analyzer.py:285 | observed |
| phi_input | key#1 | key#2 | analyzer.py:284 | strongly_inferred |
| phi_input | key:undefined | key#2 | analyzer.py:284 | unresolved |
| returns_value | out#1 | return@287 | analyzer.py:287 | observed |
| flows_to | base_graph#0 | base_nodes#1 | analyzer.py:292 | observed |
| flows_to | base_nodes#1 | owner_by_key#1 | analyzer.py:295 | observed |
| flows_to | owner_by_key#1 | index#1 | analyzer.py:300 | observed |
| guards | base_nodes#1 | for_loop | analyzer.py:303 | observed |
| flows_to | base_nodes#1 | nid#1 | analyzer.py:303 | observed |
| flows_to | base_nodes#1 | n#1 | analyzer.py:303 | observed |
| guards | n#1 | branch | analyzer.py:304 | observed |
| flows_to | n#1 | path#1 | analyzer.py:306 | observed |
| flows_to | n#1 | symbol#1 | analyzer.py:306 | observed |
| guards | path#1 | branch | analyzer.py:307 | observed |
| guards | symbol#1 | branch | analyzer.py:307 | observed |
| flows_to | owner_by_key#1 | oid#1 | analyzer.py:308 | observed |
| flows_to | path#1 | oid#1 | analyzer.py:308 | observed |
| flows_to | symbol#1 | oid#1 | analyzer.py:308 | observed |
| guards | oid#1 | branch | analyzer.py:309 | observed |
| flows_to | index#1 | expr@310 | analyzer.py:310 | observed |
| flows_to | oid#1 | expr@310 | analyzer.py:310 | observed |
| flows_to | n#1 | expr@310 | analyzer.py:310 | observed |
| phi_input | oid#1 | oid#2 | analyzer.py:307 | strongly_inferred |
| phi_input | oid:undefined | oid#2 | analyzer.py:307 | unresolved |
| phi_input | n#1 | n#2 | analyzer.py:303 | strongly_inferred |
| phi_input | n:undefined | n#2 | analyzer.py:303 | unresolved |
| phi_input | nid#1 | nid#2 | analyzer.py:303 | strongly_inferred |
| phi_input | nid:undefined | nid#2 | analyzer.py:303 | unresolved |
| phi_input | oid#2 | oid#3 | analyzer.py:303 | strongly_inferred |
| phi_input | oid:undefined | oid#3 | analyzer.py:303 | unresolved |
| phi_input | path#1 | path#2 | analyzer.py:303 | strongly_inferred |
| phi_input | path:undefined | path#2 | analyzer.py:303 | unresolved |
| phi_input | symbol#1 | symbol#2 | analyzer.py:303 | strongly_inferred |
| phi_input | symbol:undefined | symbol#2 | analyzer.py:303 | unresolved |
| flows_to | index#1 | owner_ids#1 | analyzer.py:313 | observed |
| guards | base_graph#0 | for_loop | analyzer.py:314 | observed |
| flows_to | base_graph#0 | edge#1 | analyzer.py:314 | observed |
| flows_to | edge#1 | ev#1 | analyzer.py:315 | observed |
| guards | ev#1 | branch | analyzer.py:316 | observed |
| flows_to | edge#1 | src#1 | analyzer.py:318 | observed |
| flows_to | edge#1 | dst#1 | analyzer.py:318 | observed |
| flows_to | src#1 | oid#4 | analyzer.py:319 | observed |
| flows_to | owner_ids#1 | oid#4 | analyzer.py:319 | observed |
| flows_to | node_owner#1 | oid#4 | analyzer.py:319 | observed |
| flows_to | dst#1 | oid#4 | analyzer.py:319 | observed |
| guards | oid#4 | branch | analyzer.py:320 | observed |
| guards | dst#1 | branch | analyzer.py:323 | observed |
| guards | oid#4 | branch | analyzer.py:323 | observed |
| guards | src#1 | branch | analyzer.py:323 | observed |
| guards | owner_ids#1 | branch | analyzer.py:323 | observed |
| guards | node_owner#1 | branch | analyzer.py:323 | observed |
| flows_to | index#1 | expr@325 | analyzer.py:325 | observed |
| flows_to | oid#4 | expr@325 | analyzer.py:325 | observed |
| flows_to | edge#1 | expr@325 | analyzer.py:325 | observed |
| guards | src#1 | for_loop | analyzer.py:326 | observed |
| guards | dst#1 | for_loop | analyzer.py:326 | observed |
| flows_to | src#1 | nid#3 | analyzer.py:326 | observed |
| flows_to | dst#1 | nid#3 | analyzer.py:326 | observed |
| guards | nid#3 | branch | analyzer.py:327 | observed |
| guards | owner_ids#1 | branch | analyzer.py:327 | observed |
| guards | node_owner#1 | branch | analyzer.py:327 | observed |
| flows_to | base_nodes#1 | bn#1 | analyzer.py:328 | observed |
| flows_to | nid#3 | bn#1 | analyzer.py:328 | observed |
| guards | bn#1 | branch | analyzer.py:329 | observed |
| flows_to | index#1 | expr@330 | analyzer.py:330 | observed |
| flows_to | oid#4 | expr@330 | analyzer.py:330 | observed |
| flows_to | nid#3 | expr@330 | analyzer.py:330 | observed |
| phi_input | bn#1 | bn#2 | analyzer.py:327 | strongly_inferred |
| phi_input | bn:undefined | bn#2 | analyzer.py:327 | unresolved |
| phi_input | bn#2 | bn#3 | analyzer.py:326 | strongly_inferred |
| phi_input | bn:undefined | bn#3 | analyzer.py:326 | unresolved |
| phi_input | nid#2 | nid#4 | analyzer.py:326 | strongly_inferred |
| phi_input | nid#3 | nid#4 | analyzer.py:326 | strongly_inferred |
| phi_input | bn#3 | bn#4 | analyzer.py:314 | strongly_inferred |
| phi_input | bn:undefined | bn#4 | analyzer.py:314 | unresolved |
| phi_input | dst#1 | dst#2 | analyzer.py:314 | strongly_inferred |
| phi_input | dst:undefined | dst#2 | analyzer.py:314 | unresolved |
| phi_input | edge#1 | edge#2 | analyzer.py:314 | strongly_inferred |
| phi_input | edge:undefined | edge#2 | analyzer.py:314 | unresolved |
| phi_input | ev#1 | ev#2 | analyzer.py:314 | strongly_inferred |
| phi_input | ev:undefined | ev#2 | analyzer.py:314 | unresolved |
| phi_input | nid#2 | nid#5 | analyzer.py:314 | strongly_inferred |
| phi_input | nid#4 | nid#5 | analyzer.py:314 | strongly_inferred |
| phi_input | oid#4 | oid#5 | analyzer.py:314 | strongly_inferred |
| phi_input | oid#3 | oid#5 | analyzer.py:314 | strongly_inferred |
| phi_input | src#1 | src#2 | analyzer.py:314 | strongly_inferred |
| phi_input | src:undefined | src#2 | analyzer.py:314 | unresolved |
| guards | base_graph#0 | for_loop | analyzer.py:332 | observed |
| flows_to | base_graph#0 | finding#1 | analyzer.py:332 | observed |
| guards | finding#1 | branch | analyzer.py:333 | observed |
| flows_to | finding#1 | path#3 | analyzer.py:335 | observed |
| flows_to | finding#1 | symbol#3 | analyzer.py:335 | observed |
| guards | path#3 | branch | analyzer.py:336 | observed |
| guards | symbol#3 | branch | analyzer.py:336 | observed |
| flows_to | owner_by_key#1 | oid#6 | analyzer.py:337 | observed |
| flows_to | path#3 | oid#6 | analyzer.py:337 | observed |
| flows_to | symbol#3 | oid#6 | analyzer.py:337 | observed |
| guards | oid#6 | branch | analyzer.py:338 | observed |
| flows_to | index#1 | expr@339 | analyzer.py:339 | observed |
| flows_to | oid#6 | expr@339 | analyzer.py:339 | observed |
| flows_to | finding#1 | expr@339 | analyzer.py:339 | observed |
| phi_input | oid#5 | oid#7 | analyzer.py:336 | strongly_inferred |
| phi_input | oid#6 | oid#7 | analyzer.py:336 | strongly_inferred |
| phi_input | finding#1 | finding#2 | analyzer.py:332 | strongly_inferred |
| phi_input | finding:undefined | finding#2 | analyzer.py:332 | unresolved |
| phi_input | oid#5 | oid#8 | analyzer.py:332 | strongly_inferred |
| phi_input | oid#7 | oid#8 | analyzer.py:332 | strongly_inferred |
| phi_input | path#2 | path#4 | analyzer.py:332 | strongly_inferred |
| phi_input | path#3 | path#4 | analyzer.py:332 | strongly_inferred |
| phi_input | symbol#3 | symbol#4 | analyzer.py:332 | strongly_inferred |
| phi_input | symbol#2 | symbol#4 | analyzer.py:332 | strongly_inferred |
| guards | base_graph#0 | for_loop | analyzer.py:340 | observed |
| flows_to | base_graph#0 | motif#1 | analyzer.py:340 | observed |
| flows_to | motif#1 | oid#9 | analyzer.py:341 | observed |
| guards | oid#9 | branch | analyzer.py:342 | observed |
| guards | index#1 | branch | analyzer.py:342 | observed |
| flows_to | index#1 | expr@343 | analyzer.py:343 | observed |
| flows_to | oid#9 | expr@343 | analyzer.py:343 | observed |
| flows_to | motif#1 | expr@343 | analyzer.py:343 | observed |
| phi_input | motif#1 | motif#2 | analyzer.py:340 | strongly_inferred |
| phi_input | motif:undefined | motif#2 | analyzer.py:340 | unresolved |
| phi_input | oid#9 | oid#10 | analyzer.py:340 | strongly_inferred |
| phi_input | oid#8 | oid#10 | analyzer.py:340 | strongly_inferred |
| guards | index#1 | for_loop | analyzer.py:344 | observed |
| flows_to | index#1 | oid#11 | analyzer.py:344 | observed |
| flows_to | index#1 | bucket#1 | analyzer.py:344 | observed |
| phi_input | bucket#1 | bucket#2 | analyzer.py:344 | strongly_inferred |
| phi_input | bucket:undefined | bucket#2 | analyzer.py:344 | unresolved |
| phi_input | oid#10 | oid#12 | analyzer.py:344 | strongly_inferred |
| phi_input | oid#11 | oid#12 | analyzer.py:344 | strongly_inferred |
| returns_value | index#1 | return@346 | analyzer.py:346 | observed |
| flows_to | fragment_index#0 | bucket#1 | analyzer.py:354 | observed |
| flows_to | owner_id#0 | bucket#1 | analyzer.py:354 | observed |
| guards | bucket#1 | for_loop | analyzer.py:362 | observed |
| flows_to | bucket#1 | node#1 | analyzer.py:362 | observed |
| flows_to | copied_nodes#1 | copied_nodes#2 | analyzer.py:364 | observed |
| phi_input | copied_nodes#1 | copied_nodes#3 | analyzer.py:362 | strongly_inferred |
| phi_input | copied_nodes#2 | copied_nodes#3 | analyzer.py:362 | strongly_inferred |
| phi_input | node#1 | node#2 | analyzer.py:362 | strongly_inferred |
| phi_input | node:undefined | node#2 | analyzer.py:362 | unresolved |
| guards | bucket#1 | for_loop | analyzer.py:365 | observed |
| flows_to | bucket#1 | node#3 | analyzer.py:365 | observed |
| flows_to | node#3 | nid#1 | analyzer.py:366 | observed |
| guards | nid#1 | branch | analyzer.py:367 | observed |
| guards | nodes#0 | branch | analyzer.py:367 | observed |
| flows_to | copied_nodes#3 | copied_nodes#4 | analyzer.py:369 | observed |
| phi_input | copied_nodes#4 | copied_nodes#5 | analyzer.py:367 | strongly_inferred |
| phi_input | copied_nodes#3 | copied_nodes#5 | analyzer.py:367 | strongly_inferred |
| phi_input | copied_nodes#5 | copied_nodes#6 | analyzer.py:365 | strongly_inferred |
| phi_input | copied_nodes#3 | copied_nodes#6 | analyzer.py:365 | strongly_inferred |
| phi_input | nid#1 | nid#2 | analyzer.py:365 | strongly_inferred |
| phi_input | nid:undefined | nid#2 | analyzer.py:365 | unresolved |
| phi_input | node#3 | node#4 | analyzer.py:365 | strongly_inferred |
| phi_input | node#2 | node#4 | analyzer.py:365 | strongly_inferred |
| flows_to | bucket#1 | copied_edges#1 | analyzer.py:370 | observed |
| flows_to | reuse_fact#1 | copied_edges#1 | analyzer.py:370 | observed |
| flows_to | edges#0 | expr@371 | analyzer.py:371 | observed |
| flows_to | copied_edges#1 | expr@371 | analyzer.py:371 | observed |
| flows_to | bucket#1 | copied_findings#1 | analyzer.py:372 | observed |
| flows_to | reuse_fact#1 | copied_findings#1 | analyzer.py:372 | observed |
| flows_to | findings#0 | expr@373 | analyzer.py:373 | observed |
| flows_to | copied_findings#1 | expr@373 | analyzer.py:373 | observed |
| flows_to | bucket#1 | copied_motifs#1 | analyzer.py:374 | observed |
| flows_to | reuse_fact#1 | copied_motifs#1 | analyzer.py:374 | observed |
| flows_to | motifs#0 | expr@375 | analyzer.py:375 | observed |
| flows_to | copied_motifs#1 | expr@375 | analyzer.py:375 | observed |
| returns_value | copied_nodes#6 | return@376 | analyzer.py:377 | observed |
| returns_value | copied_edges#1 | return@376 | analyzer.py:378 | observed |
| returns_value | copied_findings#1 | return@376 | analyzer.py:379 | observed |
| returns_value | copied_motifs#1 | return@376 | analyzer.py:380 | observed |
| flows_to | feature#0 | payload#1 | analyzer.py:387 | observed |
| flows_to | feature#0 | payload#1 | analyzer.py:388 | observed |
| flows_to | feature#0 | payload#1 | analyzer.py:389 | observed |
| flows_to | feature#0 | payload#1 | analyzer.py:390 | observed |
| flows_to | feature#0 | payload#1 | analyzer.py:391 | observed |
| flows_to | feature#0 | payload#1 | analyzer.py:392 | observed |
| flows_to | payload#1 | raw#1 | analyzer.py:394 | observed |
| returns_value | raw#1 | return@395 | analyzer.py:395 | observed |
| flows_to | feature#0 | ctr#1 | analyzer.py:400 | observed |
| flows_to | ctr#1 | payload#1 | analyzer.py:402 | observed |
| flows_to | ctr#1 | payload#1 | analyzer.py:403 | observed |
| flows_to | ctr#1 | payload#1 | analyzer.py:404 | observed |
| flows_to | ctr#1 | payload#1 | analyzer.py:405 | observed |
| flows_to | bucket#1 | payload#1 | analyzer.py:406 | observed |
| flows_to | feature#0 | payload#1 | analyzer.py:406 | observed |
| flows_to | bucket#1 | payload#1 | analyzer.py:407 | observed |
| flows_to | feature#0 | payload#1 | analyzer.py:407 | observed |
| flows_to | feature#0 | payload#1 | analyzer.py:408 | observed |
| flows_to | feature#0 | payload#1 | analyzer.py:409 | observed |
| flows_to | payload#1 | raw#1 | analyzer.py:411 | observed |
| returns_value | raw#1 | return@412 | analyzer.py:412 | observed |
| flows_to | feature#0 | controls#1 | analyzer.py:416 | observed |
| flows_to | feature#0 | effects#1 | analyzer.py:417 | observed |
| guards | controls#1 | branch | analyzer.py:421 | observed |
| flows_to | add#1 | expr@422 | analyzer.py:422 | observed |
| flows_to | feature#0 | shared_state#1 | analyzer.py:423 | observed |
| guards | shared_state#1 | branch | analyzer.py:424 | observed |
| flows_to | add#1 | expr@425 | analyzer.py:425 | observed |
| guards | controls#1 | branch | analyzer.py:426 | observed |
| flows_to | add#1 | expr@427 | analyzer.py:427 | observed |
| guards | feature#0 | branch | analyzer.py:428 | observed |
| flows_to | add#1 | expr@429 | analyzer.py:429 | observed |
| guards | feature#0 | branch | analyzer.py:430 | observed |
| flows_to | add#1 | expr@431 | analyzer.py:431 | observed |
| guards | effects#1 | branch | analyzer.py:432 | observed |
| guards | feature#0 | branch | analyzer.py:432 | observed |
| flows_to | add#1 | expr@433 | analyzer.py:433 | observed |
| guards | effects#1 | branch | analyzer.py:434 | observed |
| guards | controls#1 | branch | analyzer.py:434 | observed |
| flows_to | add#1 | expr@435 | analyzer.py:435 | observed |
| returns_value | motifs#1 | return@436 | analyzer.py:436 | observed |
| flows_to | edge#0 | ev#1 | analyzer.py:451 | observed |
| guards | ev#1 | branch | analyzer.py:452 | observed |
| returns_value | ev#1 | return@453 | analyzer.py:453 | observed |
| guards | base_graph#0 | for_loop | analyzer.py:465 | observed |
| flows_to | base_graph#0 | node#1 | analyzer.py:465 | observed |
| flows_to | node#1 | path#1 | analyzer.py:466 | observed |
| guards | path#1 | branch | analyzer.py:467 | observed |
| guards | dirty_paths#0 | branch | analyzer.py:467 | observed |
| phi_input | node#1 | node#2 | analyzer.py:465 | strongly_inferred |
| phi_input | node:undefined | node#2 | analyzer.py:465 | unresolved |
| phi_input | path#1 | path#2 | analyzer.py:465 | strongly_inferred |
| phi_input | path:undefined | path#2 | analyzer.py:465 | unresolved |
| flows_to | base_graph#0 | edges#1 | analyzer.py:471 | observed |
| flows_to | dirty_paths#0 | edges#1 | analyzer.py:472 | observed |
| flows_to | base_graph#0 | findings#1 | analyzer.py:475 | observed |
| flows_to | dirty_paths#0 | findings#1 | analyzer.py:477 | observed |
| flows_to | base_graph#0 | motifs#1 | analyzer.py:479 | observed |
| flows_to | dirty_paths#0 | motifs#1 | analyzer.py:479 | observed |
| returns_value | nodes#1 | return@480 | analyzer.py:480 | observed |
| returns_value | edges#1 | return@480 | analyzer.py:480 | observed |
| returns_value | findings#1 | return@480 | analyzer.py:480 | observed |
| returns_value | motifs#1 | return@480 | analyzer.py:480 | observed |
| flows_to | edges#0 | referenced#1 | analyzer.py:484 | observed |
| guards | nodes#0 | for_loop | analyzer.py:488 | observed |
| flows_to | nodes#0 | nid#1 | analyzer.py:488 | observed |
| flows_to | nodes#0 | node#1 | analyzer.py:488 | observed |
| guards | node#1 | branch | analyzer.py:489 | observed |
| guards | removable#1 | branch | analyzer.py:489 | observed |
| guards | nid#1 | branch | analyzer.py:489 | observed |
| guards | referenced#1 | branch | analyzer.py:489 | observed |
| flows_to | nodes#0 | expr@490 | analyzer.py:490 | observed |
| flows_to | nid#1 | expr@490 | analyzer.py:490 | observed |
| phi_input | nid#1 | nid#2 | analyzer.py:488 | strongly_inferred |
| phi_input | nid:undefined | nid#2 | analyzer.py:488 | unresolved |
| phi_input | node#1 | node#2 | analyzer.py:488 | strongly_inferred |
| phi_input | node:undefined | node#2 | analyzer.py:488 | unresolved |
| flows_to | root#0 | root#1 | analyzer.py:496 | observed |
| flows_to | dirty_paths#0 | dirty_set#1 | analyzer.py:497 | observed |
| flows_to | reuse_graph#0 | reuse_mode#1 | analyzer.py:498 | observed |
| flows_to | dirty_set#1 | reuse_mode#1 | analyzer.py:498 | observed |
| guards | reuse_mode#1 | branch | analyzer.py:499 | observed |
| flows_to | reuse_graph#0 | nodes#1 | analyzer.py:500 | observed |
| flows_to | dirty_set#1 | nodes#1 | analyzer.py:500 | observed |
| flows_to | reuse_graph#0 | edges#1 | analyzer.py:500 | observed |
| flows_to | dirty_set#1 | edges#1 | analyzer.py:500 | observed |
| flows_to | reuse_graph#0 | findings#1 | analyzer.py:500 | observed |
| flows_to | dirty_set#1 | findings#1 | analyzer.py:500 | observed |
| flows_to | reuse_graph#0 | motifs#1 | analyzer.py:500 | observed |
| flows_to | dirty_set#1 | motifs#1 | analyzer.py:500 | observed |
| phi_input | edges#1 | edges#3 | analyzer.py:499 | strongly_inferred |
| phi_input | edges#2 | edges#3 | analyzer.py:499 | strongly_inferred |
| phi_input | findings#1 | findings#3 | analyzer.py:499 | strongly_inferred |
| phi_input | findings#2 | findings#3 | analyzer.py:499 | strongly_inferred |
| phi_input | motifs#1 | motifs#3 | analyzer.py:499 | strongly_inferred |
| phi_input | motifs#2 | motifs#3 | analyzer.py:499 | strongly_inferred |
| phi_input | nodes#1 | nodes#3 | analyzer.py:499 | strongly_inferred |
| phi_input | nodes#2 | nodes#3 | analyzer.py:499 | strongly_inferred |
| flows_to | reuse_mode#1 | warnings#1 | analyzer.py:510 | observed |
| flows_to | reuse_graph#0 | warnings#1 | analyzer.py:508 | observed |
| flows_to | dirty_set#1 | warnings#1 | analyzer.py:509 | observed |
| flows_to | reuse_graph#0 | base_nodes_by_id#1 | analyzer.py:511 | observed |
| flows_to | reuse_mode#1 | fragment_reuse_index#1 | analyzer.py:512 | observed |
| flows_to | reuse_fragments#0 | fragment_reuse_index#1 | analyzer.py:512 | observed |
| flows_to | reuse_graph#0 | fragment_reuse_index#1 | analyzer.py:512 | observed |
| flows_to | reuse_mode#1 | fragment_cache#1 | analyzer.py:515 | observed |
| flows_to | reuse_fragments#0 | fragment_cache#1 | analyzer.py:515 | observed |
| flows_to | reuse_mode#1 | base_source_files#1 | analyzer.py:532 | observed |
| flows_to | reuse_graph#0 | base_source_files#1 | analyzer.py:532 | observed |
| guards | reuse_mode#1 | branch | analyzer.py:535 | observed |
| guards | nodes#3 | for_loop | analyzer.py:536 | observed |
| flows_to | nodes#3 | nid#1 | analyzer.py:536 | observed |
| flows_to | nodes#3 | n#1 | analyzer.py:536 | observed |
| guards | n#1 | branch | analyzer.py:537 | observed |
| flows_to | simple_defs#1 | expr@539 | analyzer.py:539 | observed |
| flows_to | n#1 | expr@539 | analyzer.py:539 | observed |
| flows_to | nid#1 | expr@539 | analyzer.py:539 | observed |
| phi_input | n#1 | n#2 | analyzer.py:536 | strongly_inferred |
| phi_input | n:undefined | n#2 | analyzer.py:536 | unresolved |
| phi_input | nid#1 | nid#2 | analyzer.py:536 | strongly_inferred |
| phi_input | nid:undefined | nid#2 | analyzer.py:536 | unresolved |
| phi_input | n#2 | n#3 | analyzer.py:535 | strongly_inferred |
| phi_input | n:undefined | n#3 | analyzer.py:535 | unresolved |
| phi_input | nid#2 | nid#3 | analyzer.py:535 | strongly_inferred |
| phi_input | nid:undefined | nid#3 | analyzer.py:535 | unresolved |
| guards | root#1 | for_loop | analyzer.py:541 | observed |
| guards | max_files#0 | for_loop | analyzer.py:541 | observed |
| guards | max_bytes#0 | for_loop | analyzer.py:541 | observed |
| flows_to | root#1 | path#1 | analyzer.py:541 | observed |
| flows_to | max_files#0 | path#1 | analyzer.py:541 | observed |
| flows_to | max_bytes#0 | path#1 | analyzer.py:541 | observed |
| flows_to | root#1 | skip_reason#1 | analyzer.py:541 | observed |
| flows_to | max_files#0 | skip_reason#1 | analyzer.py:541 | observed |
| flows_to | max_bytes#0 | skip_reason#1 | analyzer.py:541 | observed |
| flows_to | path#1 | rel#1 | analyzer.py:542 | observed |
| flows_to | root#1 | rel#1 | analyzer.py:542 | observed |
| guards | skip_reason#1 | branch | analyzer.py:543 | observed |
| guards | reuse_mode#1 | branch | analyzer.py:544 | observed |
| guards | rel#1 | branch | analyzer.py:544 | observed |
| guards | dirty_set#1 | branch | analyzer.py:544 | observed |
| flows_to | warnings#1 | expr@545 | analyzer.py:545 | observed |
| flows_to | rel#1 | expr@545 | analyzer.py:545 | observed |
| flows_to | skip_reason#1 | expr@545 | analyzer.py:545 | observed |
| flows_to | path#1 | text#1 | analyzer.py:548 | observed |
| guards | reuse_mode#1 | branch | analyzer.py:550 | observed |
| guards | rel#1 | branch | analyzer.py:550 | observed |
| guards | dirty_set#1 | branch | analyzer.py:550 | observed |
| flows_to | warnings#1 | expr@551 | analyzer.py:551 | observed |
| flows_to | rel#1 | expr@551 | analyzer.py:551 | observed |
| flows_to | text#1 | h#1 | analyzer.py:553 | observed |
| flows_to | source_integrity#1 | expr@554 | analyzer.py:554 | observed |
| flows_to | rel#1 | expr@554 | analyzer.py:554 | observed |
| flows_to | h#1 | expr@554 | analyzer.py:554 | observed |
| flows_to | text#1 | expr@554 | analyzer.py:554 | observed |
| flows_to | root#1 | mod#1 | analyzer.py:555 | observed |
| flows_to | path#1 | mod#1 | analyzer.py:555 | observed |
| guards | mod#1 | branch | analyzer.py:556 | observed |
| flows_to | path#1 | mod#2 | analyzer.py:557 | observed |
| phi_input | mod#1 | mod#3 | analyzer.py:556 | strongly_inferred |
| phi_input | mod#2 | mod#3 | analyzer.py:556 | strongly_inferred |
| guards | reuse_mode#1 | branch | analyzer.py:562 | observed |
| guards | rel#1 | branch | analyzer.py:562 | observed |
| guards | dirty_set#1 | branch | analyzer.py:562 | observed |
| guards | rel#1 | branch | analyzer.py:563 | observed |
| guards | base_source_files#1 | branch | analyzer.py:563 | observed |
| guards | nodes#3 | for_loop | analyzer.py:565 | observed |
| flows_to | nodes#3 | n#4 | analyzer.py:565 | observed |
| guards | n#4 | branch | analyzer.py:566 | observed |
| guards | rel#1 | branch | analyzer.py:566 | observed |
| flows_to | n#4 | ev#1 | analyzer.py:567 | observed |
| flows_to | shapes#1 | expr@568 | analyzer.py:568 | observed |
| flows_to | n#4 | expr@568 | analyzer.py:568 | observed |
| flows_to | rel#1 | expr@568 | analyzer.py:568 | observed |
| flows_to | ev#1 | expr@568 | analyzer.py:568 | observed |
| phi_input | ev#1 | ev#2 | analyzer.py:566 | strongly_inferred |
| phi_input | ev:undefined | ev#2 | analyzer.py:566 | unresolved |
| phi_input | ev#2 | ev#3 | analyzer.py:565 | strongly_inferred |
| phi_input | ev:undefined | ev#3 | analyzer.py:565 | unresolved |
| phi_input | n#4 | n#5 | analyzer.py:565 | strongly_inferred |
| phi_input | n#3 | n#5 | analyzer.py:565 | strongly_inferred |
| phi_input | ev#3 | ev#4 | analyzer.py:563 | strongly_inferred |
| phi_input | ev:undefined | ev#4 | analyzer.py:563 | unresolved |
| phi_input | n#5 | n#6 | analyzer.py:563 | strongly_inferred |
| phi_input | n#3 | n#6 | analyzer.py:563 | strongly_inferred |
| flows_to | text#1 | tree#1 | analyzer.py:572 | observed |
| flows_to | rel#1 | tree#1 | analyzer.py:572 | observed |
| flows_to | findings#3 | expr@574 | analyzer.py:574 | observed |
| flows_to | rel#1 | expr@574 | analyzer.py:574 | observed |
| flows_to | e#1 | expr@574 | analyzer.py:575 | observed |
| guards | tree#1 | for_loop | analyzer.py:578 | observed |
| flows_to | tree#1 | top#1 | analyzer.py:578 | observed |
| guards | top#1 | branch | analyzer.py:579 | observed |
| flows_to | top#1 | targets#1 | analyzer.py:580 | observed |
| guards | targets#1 | for_loop | analyzer.py:581 | observed |
| flows_to | targets#1 | target#1 | analyzer.py:581 | observed |
| aliases_at_definition | targets#1 | target#1 | analyzer.py:581 | observed |
| guards | target#1 | branch | analyzer.py:582 | observed |
| flows_to | module_globals#1 | expr@583 | analyzer.py:583 | observed |
| flows_to | target#1 | expr@583 | analyzer.py:583 | observed |
| guards | target#1 | branch | analyzer.py:584 | observed |
| guards | target#1 | for_loop | analyzer.py:585 | observed |
| flows_to | target#1 | elt#1 | analyzer.py:585 | observed |
| guards | elt#1 | branch | analyzer.py:586 | observed |
| flows_to | module_globals#1 | expr@587 | analyzer.py:587 | observed |
| flows_to | elt#1 | expr@587 | analyzer.py:587 | observed |
| phi_input | elt#1 | elt#2 | analyzer.py:585 | strongly_inferred |
| phi_input | elt:undefined | elt#2 | analyzer.py:585 | unresolved |
| phi_input | elt#2 | elt#3 | analyzer.py:584 | strongly_inferred |
| phi_input | elt:undefined | elt#3 | analyzer.py:584 | unresolved |
| phi_input | elt#3 | elt#4 | analyzer.py:582 | strongly_inferred |
| phi_input | elt:undefined | elt#4 | analyzer.py:582 | unresolved |
| phi_input | elt#4 | elt#5 | analyzer.py:581 | strongly_inferred |
| phi_input | elt:undefined | elt#5 | analyzer.py:581 | unresolved |
| phi_input | target#1 | target#2 | analyzer.py:581 | strongly_inferred |
| phi_input | target:undefined | target#2 | analyzer.py:581 | unresolved |
| phi_input | elt#5 | elt#6 | analyzer.py:579 | strongly_inferred |
| phi_input | elt:undefined | elt#6 | analyzer.py:579 | unresolved |
| phi_input | target#2 | target#3 | analyzer.py:579 | strongly_inferred |
| phi_input | target:undefined | target#3 | analyzer.py:579 | unresolved |
| phi_input | targets#1 | targets#2 | analyzer.py:579 | strongly_inferred |
| phi_input | targets:undefined | targets#2 | analyzer.py:579 | unresolved |
| phi_input | elt#6 | elt#7 | analyzer.py:578 | strongly_inferred |
| phi_input | elt:undefined | elt#7 | analyzer.py:578 | unresolved |
| phi_input | target#3 | target#4 | analyzer.py:578 | strongly_inferred |
| phi_input | target:undefined | target#4 | analyzer.py:578 | unresolved |
| phi_input | targets#2 | targets#3 | analyzer.py:578 | strongly_inferred |
| phi_input | targets:undefined | targets#3 | analyzer.py:578 | unresolved |
| phi_input | top#1 | top#2 | analyzer.py:578 | strongly_inferred |
| phi_input | top:undefined | top#2 | analyzer.py:578 | unresolved |
| flows_to | rel#1 | fid#1 | analyzer.py:589 | observed |
| guards | tree#1 | for_loop | analyzer.py:595 | observed |
| flows_to | tree#1 | n#7 | analyzer.py:595 | observed |
| guards | n#7 | branch | analyzer.py:596 | observed |
| guards | n#7 | for_loop | analyzer.py:597 | observed |
| flows_to | n#7 | alias#1 | analyzer.py:597 | observed |
| phi_input | alias#1 | alias#2 | analyzer.py:597 | strongly_inferred |
| phi_input | alias:undefined | alias#2 | analyzer.py:597 | unresolved |
| guards | n#7 | branch | analyzer.py:599 | observed |
| flows_to | mod#3 | target_mod#1 | analyzer.py:600 | observed |
| flows_to | n#7 | target_mod#1 | analyzer.py:600 | observed |
| guards | n#7 | for_loop | analyzer.py:601 | observed |
| flows_to | n#7 | alias#3 | analyzer.py:601 | observed |
| phi_input | alias#3 | alias#4 | analyzer.py:601 | strongly_inferred |
| phi_input | alias:undefined | alias#4 | analyzer.py:601 | unresolved |
| phi_input | alias#4 | alias#5 | analyzer.py:599 | strongly_inferred |
| phi_input | alias:undefined | alias#5 | analyzer.py:599 | unresolved |
| phi_input | target_mod#1 | target_mod#2 | analyzer.py:599 | strongly_inferred |
| phi_input | target_mod:undefined | target_mod#2 | analyzer.py:599 | unresolved |
| phi_input | alias#5 | alias#6 | analyzer.py:596 | strongly_inferred |
| phi_input | alias#2 | alias#6 | analyzer.py:596 | strongly_inferred |
| phi_input | target_mod#2 | target_mod#3 | analyzer.py:596 | strongly_inferred |
| phi_input | target_mod:undefined | target_mod#3 | analyzer.py:596 | unresolved |
| phi_input | alias#6 | alias#7 | analyzer.py:595 | strongly_inferred |
| phi_input | alias:undefined | alias#7 | analyzer.py:595 | unresolved |
| phi_input | n#7 | n#8 | analyzer.py:595 | strongly_inferred |
| phi_input | n#3 | n#8 | analyzer.py:595 | strongly_inferred |
| phi_input | target_mod#3 | target_mod#4 | analyzer.py:595 | strongly_inferred |
| phi_input | target_mod:undefined | target_mod#4 | analyzer.py:595 | unresolved |
| guards | tree#1 | for_loop | analyzer.py:606 | observed |
| flows_to | tree#1 | n#9 | analyzer.py:606 | observed |
| guards | n#9 | branch | analyzer.py:607 | observed |
| flows_to | rel#1 | sid#1 | analyzer.py:608 | observed |
| flows_to | n#9 | sid#1 | analyzer.py:608 | observed |
| flows_to | files#1 | fhash#1 | analyzer.py:609 | observed |
| flows_to | rel#1 | fhash#1 | analyzer.py:609 | observed |
| flows_to | n#9 | fhash#1 | analyzer.py:609 | observed |
| flows_to | sid#1 | _fresh#1 | analyzer.py:610 | observed |
| flows_to | n#9 | _fresh#1 | analyzer.py:610 | observed |
| flows_to | rel#1 | _fresh#1 | analyzer.py:610 | observed |
| flows_to | mod#3 | _fresh#1 | analyzer.py:610 | observed |
| flows_to | n#9 | _fresh#1 | analyzer.py:611 | observed |
| flows_to | n#9 | _fresh#1 | analyzer.py:612 | observed |
| flows_to | fhash#1 | _fresh#1 | analyzer.py:613 | observed |
| flows_to | files#1 | _fresh#1 | analyzer.py:614 | observed |
| flows_to | rel#1 | _fresh#1 | analyzer.py:614 | observed |
| flows_to | rel#1 | _fresh#1 | analyzer.py:615 | observed |
| flows_to | n#9 | _fresh#1 | analyzer.py:615 | observed |
| flows_to | fhash#1 | _fresh#1 | analyzer.py:615 | observed |
| guards | reuse_mode#1 | branch | analyzer.py:616 | observed |
| guards | rel#1 | branch | analyzer.py:616 | observed |
| guards | dirty_set#1 | branch | analyzer.py:616 | observed |
| guards | sid#1 | branch | analyzer.py:616 | observed |
| guards | nodes#3 | branch | analyzer.py:616 | observed |
| flows_to | nodes#3 | expr@617 | analyzer.py:617 | observed |
| flows_to | sid#1 | expr@617 | analyzer.py:617 | observed |
| flows_to | _fresh#1 | expr@617 | analyzer.py:617 | observed |
| flows_to | simple_defs#1 | expr@620 | analyzer.py:620 | observed |
| flows_to | n#9 | expr@620 | analyzer.py:620 | observed |
| flows_to | sid#1 | expr@620 | analyzer.py:620 | observed |
| flows_to | edges#3 | expr@621 | analyzer.py:621 | observed |
| flows_to | fid#1 | expr@621 | analyzer.py:621 | observed |
| flows_to | sid#1 | expr@621 | analyzer.py:621 | observed |
| flows_to | rel#1 | expr@621 | analyzer.py:623 | observed |
| flows_to | n#9 | expr@621 | analyzer.py:623 | observed |
| flows_to | h#1 | expr@621 | analyzer.py:623 | observed |
| flows_to | n#9 | shape_sig#1 | analyzer.py:624 | observed |
| flows_to | shapes#1 | expr@626 | analyzer.py:626 | observed |
| flows_to | shape_sig#1 | expr@626 | analyzer.py:626 | observed |
| flows_to | rel#1 | expr@626 | analyzer.py:626 | observed |
| flows_to | n#9 | expr@626 | analyzer.py:626 | observed |
| flows_to | functions#1 | expr@627 | analyzer.py:627 | observed |
| flows_to | sid#1 | expr@627 | analyzer.py:627 | observed |
| flows_to | n#9 | expr@627 | analyzer.py:627 | observed |
| flows_to | rel#1 | expr@627 | analyzer.py:627 | observed |
| flows_to | mod#3 | expr@627 | analyzer.py:627 | observed |
| flows_to | fhash#1 | expr@627 | analyzer.py:627 | observed |
| guards | n#9 | branch | analyzer.py:628 | observed |
| flows_to | rel#1 | cid#1 | analyzer.py:629 | observed |
| flows_to | n#9 | cid#1 | analyzer.py:629 | observed |
| flows_to | simple_defs#1 | expr@633 | analyzer.py:633 | observed |
| flows_to | n#9 | expr@633 | analyzer.py:633 | observed |
| flows_to | cid#1 | expr@633 | analyzer.py:633 | observed |
| flows_to | edges#3 | expr@634 | analyzer.py:634 | observed |
| flows_to | fid#1 | expr@634 | analyzer.py:634 | observed |
| flows_to | cid#1 | expr@634 | analyzer.py:634 | observed |
| flows_to | rel#1 | expr@634 | analyzer.py:636 | observed |
| flows_to | n#9 | expr@634 | analyzer.py:636 | observed |
| flows_to | h#1 | expr@634 | analyzer.py:636 | observed |
| guards | n#9 | for_loop | analyzer.py:637 | observed |
| flows_to | n#9 | item#1 | analyzer.py:637 | observed |
| guards | item#1 | branch | analyzer.py:638 | observed |
| flows_to | n#9 | qname#1 | analyzer.py:639 | observed |
| flows_to | item#1 | qname#1 | analyzer.py:639 | observed |
| flows_to | rel#1 | mid#1 | analyzer.py:640 | observed |
| flows_to | qname#1 | mid#1 | analyzer.py:640 | observed |
| flows_to | files#1 | fhash#2 | analyzer.py:641 | observed |
| flows_to | rel#1 | fhash#2 | analyzer.py:641 | observed |
| flows_to | item#1 | fhash#2 | analyzer.py:641 | observed |
| flows_to | mid#1 | _fresh#2 | analyzer.py:642 | observed |
| flows_to | qname#1 | _fresh#2 | analyzer.py:642 | observed |
| flows_to | rel#1 | _fresh#2 | analyzer.py:642 | observed |
| flows_to | mod#3 | _fresh#2 | analyzer.py:642 | observed |
| flows_to | qname#1 | _fresh#2 | analyzer.py:643 | observed |
| flows_to | item#1 | _fresh#2 | analyzer.py:643 | observed |
| flows_to | item#1 | _fresh#2 | analyzer.py:644 | observed |
| flows_to | fhash#2 | _fresh#2 | analyzer.py:645 | observed |
| flows_to | files#1 | _fresh#2 | analyzer.py:646 | observed |
| flows_to | rel#1 | _fresh#2 | analyzer.py:646 | observed |
| flows_to | rel#1 | _fresh#2 | analyzer.py:647 | observed |
| flows_to | item#1 | _fresh#2 | analyzer.py:647 | observed |
| flows_to | fhash#2 | _fresh#2 | analyzer.py:647 | observed |
| guards | reuse_mode#1 | branch | analyzer.py:648 | observed |
| guards | rel#1 | branch | analyzer.py:648 | observed |
| guards | dirty_set#1 | branch | analyzer.py:648 | observed |
| guards | mid#1 | branch | analyzer.py:648 | observed |
| guards | nodes#3 | branch | analyzer.py:648 | observed |
| flows_to | nodes#3 | expr@649 | analyzer.py:649 | observed |
| flows_to | mid#1 | expr@649 | analyzer.py:649 | observed |
| flows_to | _fresh#2 | expr@649 | analyzer.py:649 | observed |
| flows_to | simple_defs#1 | expr@652 | analyzer.py:652 | observed |
| flows_to | item#1 | expr@652 | analyzer.py:652 | observed |
| flows_to | mid#1 | expr@652 | analyzer.py:652 | observed |
| flows_to | edges#3 | expr@653 | analyzer.py:653 | observed |
| flows_to | cid#1 | expr@653 | analyzer.py:653 | observed |
| flows_to | mid#1 | expr@653 | analyzer.py:653 | observed |
| flows_to | rel#1 | expr@653 | analyzer.py:655 | observed |
| flows_to | item#1 | expr@653 | analyzer.py:655 | observed |
| flows_to | h#1 | expr@653 | analyzer.py:655 | observed |
| flows_to | item#1 | shape_sig#2 | analyzer.py:656 | observed |
| flows_to | shapes#1 | expr@658 | analyzer.py:658 | observed |
| flows_to | shape_sig#2 | expr@658 | analyzer.py:658 | observed |
| flows_to | rel#1 | expr@658 | analyzer.py:658 | observed |
| flows_to | qname#1 | expr@658 | analyzer.py:658 | observed |
| flows_to | item#1 | expr@658 | analyzer.py:658 | observed |
| flows_to | functions#1 | expr@659 | analyzer.py:659 | observed |
| flows_to | mid#1 | expr@659 | analyzer.py:659 | observed |
| flows_to | item#1 | expr@659 | analyzer.py:659 | observed |
| flows_to | qname#1 | expr@659 | analyzer.py:659 | observed |
| flows_to | n#9 | expr@659 | analyzer.py:659 | observed |
| flows_to | rel#1 | expr@659 | analyzer.py:659 | observed |
| flows_to | mod#3 | expr@659 | analyzer.py:659 | observed |
| flows_to | fhash#2 | expr@659 | analyzer.py:659 | observed |
| phi_input | _fresh#2 | _fresh#3 | analyzer.py:638 | strongly_inferred |
| phi_input | _fresh:undefined | _fresh#3 | analyzer.py:638 | unresolved |
| phi_input | fhash#2 | fhash#3 | analyzer.py:638 | strongly_inferred |
| phi_input | fhash:undefined | fhash#3 | analyzer.py:638 | unresolved |
| phi_input | mid#1 | mid#2 | analyzer.py:638 | strongly_inferred |
| phi_input | mid:undefined | mid#2 | analyzer.py:638 | unresolved |
| phi_input | qname#1 | qname#2 | analyzer.py:638 | strongly_inferred |
| phi_input | qname:undefined | qname#2 | analyzer.py:638 | unresolved |
| phi_input | shape_sig#2 | shape_sig#3 | analyzer.py:638 | strongly_inferred |
| phi_input | shape_sig:undefined | shape_sig#3 | analyzer.py:638 | unresolved |
| phi_input | _fresh#3 | _fresh#4 | analyzer.py:637 | strongly_inferred |
| phi_input | _fresh:undefined | _fresh#4 | analyzer.py:637 | unresolved |
| phi_input | fhash#3 | fhash#4 | analyzer.py:637 | strongly_inferred |
| phi_input | fhash:undefined | fhash#4 | analyzer.py:637 | unresolved |
| phi_input | item#1 | item#2 | analyzer.py:637 | strongly_inferred |
| phi_input | item:undefined | item#2 | analyzer.py:637 | unresolved |
| phi_input | mid#2 | mid#3 | analyzer.py:637 | strongly_inferred |
| phi_input | mid:undefined | mid#3 | analyzer.py:637 | unresolved |
| phi_input | qname#2 | qname#3 | analyzer.py:637 | strongly_inferred |
| phi_input | qname:undefined | qname#3 | analyzer.py:637 | unresolved |
| phi_input | shape_sig#3 | shape_sig#4 | analyzer.py:637 | strongly_inferred |
| phi_input | shape_sig:undefined | shape_sig#4 | analyzer.py:637 | unresolved |
| phi_input | _fresh#4 | _fresh#5 | analyzer.py:628 | strongly_inferred |
| phi_input | _fresh:undefined | _fresh#5 | analyzer.py:628 | unresolved |
| phi_input | cid#1 | cid#2 | analyzer.py:628 | strongly_inferred |
| phi_input | cid:undefined | cid#2 | analyzer.py:628 | unresolved |
| phi_input | fhash#4 | fhash#5 | analyzer.py:628 | strongly_inferred |
| phi_input | fhash:undefined | fhash#5 | analyzer.py:628 | unresolved |
| phi_input | item#2 | item#3 | analyzer.py:628 | strongly_inferred |
| phi_input | item:undefined | item#3 | analyzer.py:628 | unresolved |
| phi_input | mid#3 | mid#4 | analyzer.py:628 | strongly_inferred |
| phi_input | mid:undefined | mid#4 | analyzer.py:628 | unresolved |
| phi_input | qname#3 | qname#4 | analyzer.py:628 | strongly_inferred |
| phi_input | qname:undefined | qname#4 | analyzer.py:628 | unresolved |
| phi_input | shape_sig#4 | shape_sig#5 | analyzer.py:628 | strongly_inferred |
| phi_input | shape_sig:undefined | shape_sig#5 | analyzer.py:628 | unresolved |
| phi_input | _fresh#5 | _fresh#6 | analyzer.py:607 | strongly_inferred |
| phi_input | _fresh#1 | _fresh#6 | analyzer.py:607 | strongly_inferred |
| phi_input | cid#2 | cid#3 | analyzer.py:607 | strongly_inferred |
| phi_input | cid:undefined | cid#3 | analyzer.py:607 | unresolved |
| phi_input | fhash#5 | fhash#6 | analyzer.py:607 | strongly_inferred |
| phi_input | fhash#1 | fhash#6 | analyzer.py:607 | strongly_inferred |
| phi_input | item#3 | item#4 | analyzer.py:607 | strongly_inferred |
| phi_input | item:undefined | item#4 | analyzer.py:607 | unresolved |
| phi_input | mid#4 | mid#5 | analyzer.py:607 | strongly_inferred |
| phi_input | mid:undefined | mid#5 | analyzer.py:607 | unresolved |
| phi_input | qname#4 | qname#5 | analyzer.py:607 | strongly_inferred |
| phi_input | qname:undefined | qname#5 | analyzer.py:607 | unresolved |
| phi_input | shape_sig#5 | shape_sig#6 | analyzer.py:607 | strongly_inferred |
| phi_input | shape_sig#1 | shape_sig#6 | analyzer.py:607 | strongly_inferred |
| phi_input | sid#1 | sid#2 | analyzer.py:607 | strongly_inferred |
| phi_input | sid:undefined | sid#2 | analyzer.py:607 | unresolved |
| phi_input | _fresh#6 | _fresh#7 | analyzer.py:606 | strongly_inferred |
| phi_input | _fresh:undefined | _fresh#7 | analyzer.py:606 | unresolved |
| phi_input | cid#3 | cid#4 | analyzer.py:606 | strongly_inferred |
| phi_input | cid:undefined | cid#4 | analyzer.py:606 | unresolved |
| phi_input | fhash#6 | fhash#7 | analyzer.py:606 | strongly_inferred |
| phi_input | fhash:undefined | fhash#7 | analyzer.py:606 | unresolved |
| phi_input | item#4 | item#5 | analyzer.py:606 | strongly_inferred |
| phi_input | item:undefined | item#5 | analyzer.py:606 | unresolved |
| phi_input | mid#5 | mid#6 | analyzer.py:606 | strongly_inferred |
| phi_input | mid:undefined | mid#6 | analyzer.py:606 | unresolved |
| phi_input | n#8 | n#10 | analyzer.py:606 | strongly_inferred |
| phi_input | n#9 | n#10 | analyzer.py:606 | strongly_inferred |
| phi_input | qname#5 | qname#6 | analyzer.py:606 | strongly_inferred |
| phi_input | qname:undefined | qname#6 | analyzer.py:606 | unresolved |
| phi_input | shape_sig#6 | shape_sig#7 | analyzer.py:606 | strongly_inferred |
| phi_input | shape_sig:undefined | shape_sig#7 | analyzer.py:606 | unresolved |
| phi_input | sid#2 | sid#3 | analyzer.py:606 | strongly_inferred |
| phi_input | sid:undefined | sid#3 | analyzer.py:606 | unresolved |
| phi_input | _fresh#7 | _fresh#8 | analyzer.py:541 | strongly_inferred |
| phi_input | _fresh:undefined | _fresh#8 | analyzer.py:541 | unresolved |
| phi_input | alias#7 | alias#8 | analyzer.py:541 | strongly_inferred |
| phi_input | alias:undefined | alias#8 | analyzer.py:541 | unresolved |
| phi_input | cid#4 | cid#5 | analyzer.py:541 | strongly_inferred |
| phi_input | cid:undefined | cid#5 | analyzer.py:541 | unresolved |
| phi_input | elt#7 | elt#8 | analyzer.py:541 | strongly_inferred |
| phi_input | elt:undefined | elt#8 | analyzer.py:541 | unresolved |
| phi_input | fhash#7 | fhash#8 | analyzer.py:541 | strongly_inferred |
| phi_input | fhash:undefined | fhash#8 | analyzer.py:541 | unresolved |
| phi_input | fid#1 | fid#2 | analyzer.py:541 | strongly_inferred |
| phi_input | fid:undefined | fid#2 | analyzer.py:541 | unresolved |
| phi_input | h#1 | h#2 | analyzer.py:541 | strongly_inferred |
| phi_input | h:undefined | h#2 | analyzer.py:541 | unresolved |
| phi_input | import_map#1 | import_map#2 | analyzer.py:541 | strongly_inferred |
| phi_input | import_map:undefined | import_map#2 | analyzer.py:541 | unresolved |
| phi_input | item#5 | item#6 | analyzer.py:541 | strongly_inferred |
| phi_input | item:undefined | item#6 | analyzer.py:541 | unresolved |
| phi_input | mid#6 | mid#7 | analyzer.py:541 | strongly_inferred |
| phi_input | mid:undefined | mid#7 | analyzer.py:541 | unresolved |
| phi_input | mod#3 | mod#4 | analyzer.py:541 | strongly_inferred |
| phi_input | mod:undefined | mod#4 | analyzer.py:541 | unresolved |
| phi_input | module_globals#1 | module_globals#2 | analyzer.py:541 | strongly_inferred |
| phi_input | module_globals:undefined | module_globals#2 | analyzer.py:541 | unresolved |
| phi_input | n#10 | n#11 | analyzer.py:541 | strongly_inferred |
| phi_input | n#3 | n#11 | analyzer.py:541 | strongly_inferred |
| phi_input | path#1 | path#2 | analyzer.py:541 | strongly_inferred |
| phi_input | path:undefined | path#2 | analyzer.py:541 | unresolved |
| phi_input | qname#6 | qname#7 | analyzer.py:541 | strongly_inferred |
| phi_input | qname:undefined | qname#7 | analyzer.py:541 | unresolved |
| phi_input | rel#1 | rel#2 | analyzer.py:541 | strongly_inferred |
| phi_input | rel:undefined | rel#2 | analyzer.py:541 | unresolved |
| phi_input | shape_sig#7 | shape_sig#8 | analyzer.py:541 | strongly_inferred |
| phi_input | shape_sig:undefined | shape_sig#8 | analyzer.py:541 | unresolved |
| phi_input | sid#3 | sid#4 | analyzer.py:541 | strongly_inferred |
| phi_input | sid:undefined | sid#4 | analyzer.py:541 | unresolved |
| phi_input | skip_reason#1 | skip_reason#2 | analyzer.py:541 | strongly_inferred |
| phi_input | skip_reason:undefined | skip_reason#2 | analyzer.py:541 | unresolved |
| phi_input | target#4 | target#5 | analyzer.py:541 | strongly_inferred |
| phi_input | target:undefined | target#5 | analyzer.py:541 | unresolved |
| phi_input | target_mod#4 | target_mod#5 | analyzer.py:541 | strongly_inferred |
| phi_input | target_mod:undefined | target_mod#5 | analyzer.py:541 | unresolved |
| phi_input | targets#3 | targets#4 | analyzer.py:541 | strongly_inferred |
| phi_input | targets:undefined | targets#4 | analyzer.py:541 | unresolved |
| phi_input | text#1 | text#2 | analyzer.py:541 | strongly_inferred |
| phi_input | text:undefined | text#2 | analyzer.py:541 | unresolved |
| phi_input | top#2 | top#3 | analyzer.py:541 | strongly_inferred |
| phi_input | top:undefined | top#3 | analyzer.py:541 | unresolved |
| phi_input | tree#1 | tree#2 | analyzer.py:541 | strongly_inferred |
| phi_input | tree:undefined | tree#2 | analyzer.py:541 | unresolved |
| guards | files#1 | for_loop | analyzer.py:662 | observed |
| flows_to | files#1 | rel#3 | analyzer.py:662 | observed |
| flows_to | files#1 | meta#1 | analyzer.py:662 | observed |
| guards | reuse_mode#1 | branch | analyzer.py:663 | observed |
| guards | rel#3 | branch | analyzer.py:663 | observed |
| guards | dirty_set#1 | branch | analyzer.py:663 | observed |
| flows_to | meta#1 | mod#5 | analyzer.py:665 | observed |
| flows_to | rel#3 | fid#3 | analyzer.py:665 | observed |
| flows_to | meta#1 | h#3 | analyzer.py:665 | observed |
| guards | meta#1 | for_loop | analyzer.py:666 | observed |
| flows_to | meta#1 | n#12 | analyzer.py:666 | observed |
| guards | n#12 | branch | analyzer.py:667 | observed |
| flows_to | n#12 | targets#5 | analyzer.py:668 | observed |
| guards | n#12 | branch | analyzer.py:669 | observed |
| flows_to | mod#5 | targets#6 | analyzer.py:670 | observed |
| flows_to | n#12 | targets#6 | analyzer.py:670 | observed |
| phi_input | targets#6 | targets#7 | analyzer.py:667 | strongly_inferred |
| phi_input | targets#5 | targets#7 | analyzer.py:667 | strongly_inferred |
| guards | targets#7 | for_loop | analyzer.py:673 | observed |
| flows_to | targets#7 | target_mod#6 | analyzer.py:673 | observed |
| aliases_at_definition | targets#7 | target_mod#6 | analyzer.py:673 | observed |
| flows_to | targets#7 | line#1 | analyzer.py:673 | observed |
| aliases_at_definition | targets#7 | line#1 | analyzer.py:673 | observed |
| guards | target_mod#6 | branch | analyzer.py:674 | observed |
| guards | module_to_file#1 | branch | analyzer.py:674 | observed |
| flows_to | module_to_file#1 | tid#1 | analyzer.py:675 | observed |
| flows_to | target_mod#6 | tid#1 | analyzer.py:675 | observed |
| flows_to | target_mod#6 | tid#2 | analyzer.py:677 | observed |
| flows_to | nodes#3 | expr@678 | analyzer.py:678 | observed |
| flows_to | tid#2 | expr@678 | analyzer.py:678 | observed |
| flows_to | target_mod#6 | expr@678 | analyzer.py:678 | observed |
| phi_input | resolution#1 | resolution#3 | analyzer.py:674 | strongly_inferred |
| phi_input | resolution#2 | resolution#3 | analyzer.py:674 | strongly_inferred |
| phi_input | tid#1 | tid#3 | analyzer.py:674 | strongly_inferred |
| phi_input | tid#2 | tid#3 | analyzer.py:674 | strongly_inferred |
| flows_to | edges#3 | expr@681 | analyzer.py:681 | observed |
| flows_to | fid#3 | expr@681 | analyzer.py:681 | observed |
| flows_to | tid#3 | expr@681 | analyzer.py:681 | observed |
| flows_to | line#1 | expr@681 | analyzer.py:681 | observed |
| flows_to | resolution#3 | expr@681 | analyzer.py:682 | observed |
| flows_to | resolution#3 | expr@681 | analyzer.py:683 | observed |
| flows_to | rel#3 | expr@681 | analyzer.py:684 | observed |
| flows_to | line#1 | expr@681 | analyzer.py:684 | observed |
| flows_to | h#3 | expr@681 | analyzer.py:684 | observed |
| phi_input | line#1 | line#2 | analyzer.py:673 | strongly_inferred |
| phi_input | line:undefined | line#2 | analyzer.py:673 | unresolved |
| phi_input | resolution#3 | resolution#4 | analyzer.py:673 | strongly_inferred |
| phi_input | resolution:undefined | resolution#4 | analyzer.py:673 | unresolved |
| phi_input | target_mod#6 | target_mod#7 | analyzer.py:673 | strongly_inferred |
| phi_input | target_mod#5 | target_mod#7 | analyzer.py:673 | strongly_inferred |
| phi_input | tid#3 | tid#4 | analyzer.py:673 | strongly_inferred |
| phi_input | tid:undefined | tid#4 | analyzer.py:673 | unresolved |
| phi_input | line#2 | line#3 | analyzer.py:666 | strongly_inferred |
| phi_input | line:undefined | line#3 | analyzer.py:666 | unresolved |
| phi_input | n#12 | n#13 | analyzer.py:666 | strongly_inferred |
| phi_input | n#11 | n#13 | analyzer.py:666 | strongly_inferred |
| phi_input | resolution#4 | resolution#5 | analyzer.py:666 | strongly_inferred |
| phi_input | resolution:undefined | resolution#5 | analyzer.py:666 | unresolved |
| phi_input | target_mod#5 | target_mod#8 | analyzer.py:666 | strongly_inferred |
| phi_input | target_mod#7 | target_mod#8 | analyzer.py:666 | strongly_inferred |
| phi_input | targets#7 | targets#8 | analyzer.py:666 | strongly_inferred |
| phi_input | targets#4 | targets#8 | analyzer.py:666 | strongly_inferred |
| phi_input | tid#4 | tid#5 | analyzer.py:666 | strongly_inferred |
| phi_input | tid:undefined | tid#5 | analyzer.py:666 | unresolved |
| phi_input | fid#2 | fid#4 | analyzer.py:662 | strongly_inferred |
| phi_input | fid#3 | fid#4 | analyzer.py:662 | strongly_inferred |
| phi_input | h#3 | h#4 | analyzer.py:662 | strongly_inferred |
| phi_input | h#2 | h#4 | analyzer.py:662 | strongly_inferred |
| phi_input | line#3 | line#4 | analyzer.py:662 | strongly_inferred |
| phi_input | line:undefined | line#4 | analyzer.py:662 | unresolved |
| phi_input | meta#1 | meta#2 | analyzer.py:662 | strongly_inferred |
| phi_input | meta:undefined | meta#2 | analyzer.py:662 | unresolved |
| phi_input | mod#5 | mod#6 | analyzer.py:662 | strongly_inferred |
| phi_input | mod#4 | mod#6 | analyzer.py:662 | strongly_inferred |
| phi_input | n#11 | n#14 | analyzer.py:662 | strongly_inferred |
| phi_input | n#13 | n#14 | analyzer.py:662 | strongly_inferred |
| phi_input | rel#3 | rel#4 | analyzer.py:662 | strongly_inferred |
| phi_input | rel#2 | rel#4 | analyzer.py:662 | strongly_inferred |
| phi_input | resolution#5 | resolution#6 | analyzer.py:662 | strongly_inferred |
| phi_input | resolution:undefined | resolution#6 | analyzer.py:662 | unresolved |
| phi_input | target_mod#8 | target_mod#9 | analyzer.py:662 | strongly_inferred |
| phi_input | target_mod#5 | target_mod#9 | analyzer.py:662 | strongly_inferred |
| phi_input | targets#8 | targets#9 | analyzer.py:662 | strongly_inferred |
| phi_input | targets#4 | targets#9 | analyzer.py:662 | strongly_inferred |
| phi_input | tid#5 | tid#6 | analyzer.py:662 | strongly_inferred |
| phi_input | tid:undefined | tid#6 | analyzer.py:662 | unresolved |
| flows_to | nodes#3 | function_features#1 | analyzer.py:689 | observed |
| guards | functions#1 | for_loop | analyzer.py:693 | observed |
| flows_to | functions#1 | info#1 | analyzer.py:693 | observed |
| aliases_at_definition | functions#1 | info#1 | analyzer.py:693 | observed |
| flows_to | info#1 | fn#1 | analyzer.py:694 | observed |
| flows_to | info#1 | rel#5 | analyzer.py:694 | observed |
| flows_to | info#1 | mod#7 | analyzer.py:694 | observed |
| flows_to | info#1 | qname#8 | analyzer.py:694 | observed |
| flows_to | info#1 | owner_id#1 | analyzer.py:694 | observed |
| flows_to | info#1 | class_name#1 | analyzer.py:694 | observed |
| guards | reuse_mode#1 | branch | analyzer.py:695 | observed |
| guards | rel#5 | branch | analyzer.py:695 | observed |
| guards | dirty_set#1 | branch | analyzer.py:695 | observed |
| flows_to | info#1 | h#5 | analyzer.py:697 | observed |
| flows_to | files#1 | h#5 | analyzer.py:697 | observed |
| flows_to | rel#5 | h#5 | analyzer.py:697 | observed |
| flows_to | imports_by_module#1 | import_map#3 | analyzer.py:697 | observed |
| flows_to | mod#7 | import_map#3 | analyzer.py:697 | observed |
| guards | reuse_mode#1 | branch | analyzer.py:698 | observed |
| guards | rel#5 | branch | analyzer.py:698 | observed |
| guards | dirty_set#1 | branch | analyzer.py:698 | observed |
| guards | reuse_fragments#0 | branch | analyzer.py:698 | observed |
| flows_to | base_nodes_by_id#1 | base_owner#1 | analyzer.py:699 | observed |
| flows_to | owner_id#1 | base_owner#1 | analyzer.py:699 | observed |
| flows_to | nodes#3 | target_owner#1 | analyzer.py:700 | observed |
| flows_to | owner_id#1 | target_owner#1 | analyzer.py:700 | observed |
| guards | base_owner#1 | branch | analyzer.py:701 | observed |
| flows_to | base_owner#1 | base_ev#1 | analyzer.py:703 | observed |
| flows_to | target_owner#1 | target_ev#1 | analyzer.py:704 | observed |
| guards | base_owner#1 | branch | analyzer.py:706 | observed |
| guards | target_owner#1 | branch | analyzer.py:706 | observed |
| guards | base_owner#1 | branch | analyzer.py:708 | observed |
| guards | target_owner#1 | branch | analyzer.py:708 | observed |
| guards | base_ev#1 | branch | analyzer.py:710 | observed |
| guards | target_ev#1 | branch | analyzer.py:710 | observed |
| phi_input | reason#1 | reason#5 | analyzer.py:710 | strongly_inferred |
| phi_input | reason#4 | reason#5 | analyzer.py:710 | strongly_inferred |
| phi_input | reason#5 | reason#6 | analyzer.py:708 | strongly_inferred |
| phi_input | reason#3 | reason#6 | analyzer.py:708 | strongly_inferred |
| phi_input | reason#2 | reason#7 | analyzer.py:706 | strongly_inferred |
| phi_input | reason#6 | reason#7 | analyzer.py:706 | strongly_inferred |
| guards | reason#7 | branch | analyzer.py:712 | observed |
| flows_to | fragment_reuse_index#1 | counts#1 | analyzer.py:714 | observed |
| flows_to | owner_id#1 | counts#1 | analyzer.py:714 | observed |
| flows_to | h#5 | counts#1 | analyzer.py:714 | observed |
| flows_to | nodes#3 | counts#1 | analyzer.py:715 | observed |
| flows_to | edges#3 | counts#1 | analyzer.py:715 | observed |
| flows_to | findings#3 | counts#1 | analyzer.py:715 | observed |
| flows_to | motifs#3 | counts#1 | analyzer.py:715 | observed |
| guards | key#1 | branch | analyzer.py:719 | observed |
| guards | base_owner#1 | branch | analyzer.py:719 | observed |
| phi_input | key#1 | key#2 | analyzer.py:718 | strongly_inferred |
| phi_input | key:undefined | key#2 | analyzer.py:718 | unresolved |
| flows_to | fragment_cache#1 | expr@723 | analyzer.py:723 | observed |
| flows_to | rel#5 | expr@723 | analyzer.py:723 | observed |
| flows_to | qname#8 | expr@723 | analyzer.py:723 | observed |
| guards | counts#1 | for_loop | analyzer.py:724 | observed |
| flows_to | counts#1 | key#3 | analyzer.py:724 | observed |
| flows_to | counts#1 | value#1 | analyzer.py:724 | observed |
| phi_input | key#2 | key#4 | analyzer.py:724 | strongly_inferred |
| phi_input | key#3 | key#4 | analyzer.py:724 | strongly_inferred |
| phi_input | value#1 | value#2 | analyzer.py:724 | strongly_inferred |
| phi_input | value:undefined | value#2 | analyzer.py:724 | unresolved |
| phi_input | base_ev#1 | base_ev#2 | analyzer.py:701 | strongly_inferred |
| phi_input | base_ev:undefined | base_ev#2 | analyzer.py:701 | unresolved |
| phi_input | reason#7 | reason#8 | analyzer.py:701 | strongly_inferred |
| phi_input | reason:undefined | reason#8 | analyzer.py:701 | unresolved |
| phi_input | target_ev#1 | target_ev#2 | analyzer.py:701 | strongly_inferred |
| phi_input | target_ev:undefined | target_ev#2 | analyzer.py:701 | unresolved |
| flows_to | fragment_cache#1 | expr@729 | analyzer.py:729 | observed |
| flows_to | rel#5 | expr@729 | analyzer.py:729 | observed |
| flows_to | qname#8 | expr@729 | analyzer.py:729 | observed |
| phi_input | base_ev#2 | base_ev#3 | analyzer.py:698 | strongly_inferred |
| phi_input | base_ev:undefined | base_ev#3 | analyzer.py:698 | unresolved |
| phi_input | base_owner#1 | base_owner#2 | analyzer.py:698 | strongly_inferred |
| phi_input | base_owner:undefined | base_owner#2 | analyzer.py:698 | unresolved |
| phi_input | reason#8 | reason#9 | analyzer.py:698 | strongly_inferred |
| phi_input | reason:undefined | reason#9 | analyzer.py:698 | unresolved |
| phi_input | target_ev#2 | target_ev#3 | analyzer.py:698 | strongly_inferred |
| phi_input | target_ev:undefined | target_ev#3 | analyzer.py:698 | unresolved |
| phi_input | target_owner#1 | target_owner#2 | analyzer.py:698 | strongly_inferred |
| phi_input | target_owner:undefined | target_owner#2 | analyzer.py:698 | unresolved |
| flows_to | fn#1 | defaults#1 | analyzer.py:730 | observed |
| guards | defaults#1 | for_loop | analyzer.py:731 | observed |
| flows_to | defaults#1 | d#1 | analyzer.py:731 | observed |
| aliases_at_definition | defaults#1 | d#1 | analyzer.py:731 | observed |
| guards | d#1 | branch | analyzer.py:732 | observed |
| flows_to | findings#3 | expr@733 | analyzer.py:733 | observed |
| flows_to | rel#5 | expr@733 | analyzer.py:733 | observed |
| flows_to | qname#8 | expr@733 | analyzer.py:734 | observed |
| flows_to | fn#1 | expr@733 | analyzer.py:734 | observed |
| phi_input | d#1 | d#2 | analyzer.py:731 | strongly_inferred |
| phi_input | d:undefined | d#2 | analyzer.py:731 | unresolved |
| flows_to | findings#3 | expr@736 | analyzer.py:736 | observed |
| flows_to | fn#1 | expr@736 | analyzer.py:736 | observed |
| flows_to | rel#5 | expr@736 | analyzer.py:736 | observed |
| flows_to | qname#8 | expr@736 | analyzer.py:736 | observed |
| flows_to | rel#5 | scan#1 | analyzer.py:737 | observed |
| flows_to | qname#8 | scan#1 | analyzer.py:737 | observed |
| guards | fn#1 | for_loop | analyzer.py:738 | observed |
| flows_to | fn#1 | st#1 | analyzer.py:738 | observed |
| flows_to | scan#1 | expr@739 | analyzer.py:739 | observed |
| flows_to | st#1 | expr@739 | analyzer.py:739 | observed |
| phi_input | st#1 | st#2 | analyzer.py:738 | strongly_inferred |
| phi_input | st:undefined | st#2 | analyzer.py:738 | unresolved |
| guards | scan#1 | for_loop | analyzer.py:740 | observed |
| flows_to | scan#1 | issue#1 | analyzer.py:740 | observed |
| flows_to | findings#3 | expr@741 | analyzer.py:741 | observed |
| flows_to | rel#5 | expr@741 | analyzer.py:741 | observed |
| flows_to | qname#8 | expr@741 | analyzer.py:741 | observed |
| flows_to | issue#1 | expr@741 | analyzer.py:741 | observed |
| phi_input | issue#1 | issue#2 | analyzer.py:740 | strongly_inferred |
| phi_input | issue:undefined | issue#2 | analyzer.py:740 | unresolved |
| guards | scan#1 | for_loop | analyzer.py:744 | observed |
| flows_to | scan#1 | ctrl#1 | analyzer.py:744 | observed |
| flows_to | rel#5 | cid#6 | analyzer.py:745 | observed |
| flows_to | qname#8 | cid#6 | analyzer.py:745 | observed |
| flows_to | ctrl#1 | cid#6 | analyzer.py:745 | observed |
| flows_to | edges#3 | expr@749 | analyzer.py:749 | observed |
| flows_to | owner_id#1 | expr@749 | analyzer.py:749 | observed |
| flows_to | cid#6 | expr@749 | analyzer.py:749 | observed |
| flows_to | rel#5 | expr@749 | analyzer.py:751 | observed |
| flows_to | ctrl#1 | expr@749 | analyzer.py:751 | observed |
| flows_to | h#5 | expr@749 | analyzer.py:751 | observed |
| flows_to | feature#1 | expr@752 | analyzer.py:752 | observed |
| flows_to | ctrl#1 | expr@752 | analyzer.py:752 | observed |
| phi_input | cid#6 | cid#7 | analyzer.py:744 | strongly_inferred |
| phi_input | cid#5 | cid#7 | analyzer.py:744 | strongly_inferred |
| phi_input | ctrl#1 | ctrl#2 | analyzer.py:744 | strongly_inferred |
| phi_input | ctrl:undefined | ctrl#2 | analyzer.py:744 | unresolved |
| flows_to | fn#1 | closure#1 | analyzer.py:756 | observed |
| flows_to | rel#5 | closure#1 | analyzer.py:756 | observed |
| flows_to | qname#8 | closure#1 | analyzer.py:756 | observed |
| flows_to | owner_id#1 | closure#1 | analyzer.py:756 | observed |
| flows_to | h#5 | closure#1 | analyzer.py:756 | observed |
| flows_to | mod#7 | closure#1 | analyzer.py:756 | observed |
| flows_to | class_name#1 | closure#1 | analyzer.py:756 | observed |
| flows_to | files#1 | closure#1 | analyzer.py:757 | observed |
| flows_to | rel#5 | closure#1 | analyzer.py:757 | observed |
| guards | closure#1 | for_loop | analyzer.py:759 | observed |
| flows_to | closure#1 | n#15 | analyzer.py:759 | observed |
| flows_to | nodes#3 | expr@760 | analyzer.py:760 | observed |
| flows_to | n#15 | expr@760 | analyzer.py:760 | observed |
| phi_input | n#15 | n#16 | analyzer.py:759 | strongly_inferred |
| phi_input | n#14 | n#16 | analyzer.py:759 | strongly_inferred |
| flows_to | edges#3 | expr@761 | analyzer.py:761 | observed |
| flows_to | closure#1 | expr@761 | analyzer.py:761 | observed |
| flows_to | findings#3 | expr@762 | analyzer.py:762 | observed |
| flows_to | closure#1 | expr@762 | analyzer.py:762 | observed |
| flows_to | closure#1 | csum#1 | analyzer.py:763 | observed |
| guards | scan#1 | for_loop | analyzer.py:771 | observed |
| flows_to | scan#1 | ef#1 | analyzer.py:771 | observed |
| flows_to | ef#1 | eid#1 | analyzer.py:772 | observed |
| flows_to | nodes#3 | expr@773 | analyzer.py:773 | observed |
| flows_to | eid#1 | expr@773 | analyzer.py:773 | observed |
| flows_to | ef#1 | expr@773 | analyzer.py:773 | observed |
| flows_to | edges#3 | expr@774 | analyzer.py:774 | observed |
| flows_to | owner_id#1 | expr@774 | analyzer.py:774 | observed |
| flows_to | eid#1 | expr@774 | analyzer.py:774 | observed |
| flows_to | ef#1 | expr@774 | analyzer.py:774 | observed |
| flows_to | eid#1 | expr@774 | analyzer.py:775 | observed |
| flows_to | ef#1 | expr@774 | analyzer.py:775 | observed |
| flows_to | rel#5 | expr@774 | analyzer.py:776 | observed |
| flows_to | ef#1 | expr@774 | analyzer.py:776 | observed |
| flows_to | h#5 | expr@774 | analyzer.py:776 | observed |
| flows_to | feature#1 | expr@777 | analyzer.py:777 | observed |
| flows_to | ef#1 | expr@777 | analyzer.py:777 | observed |
| phi_input | ef#1 | ef#2 | analyzer.py:771 | strongly_inferred |
| phi_input | ef:undefined | ef#2 | analyzer.py:771 | unresolved |
| phi_input | eid#1 | eid#2 | analyzer.py:771 | strongly_inferred |
| phi_input | eid:undefined | eid#2 | analyzer.py:771 | unresolved |
| guards | scan#1 | for_loop | analyzer.py:779 | observed |
| flows_to | scan#1 | call#1 | analyzer.py:779 | observed |
| flows_to | call#1 | callee#1 | analyzer.py:780 | observed |
| guards | callee#1 | branch | analyzer.py:781 | observed |
| guards | mod#7 | branch | analyzer.py:782 | observed |
| guards | callee#1 | branch | analyzer.py:782 | observed |
| guards | definitions#1 | branch | analyzer.py:782 | observed |
| flows_to | definitions#1 | target_id#2 | analyzer.py:783 | observed |
| flows_to | mod#7 | target_id#2 | analyzer.py:783 | observed |
| flows_to | callee#1 | target_id#2 | analyzer.py:783 | observed |
| guards | callee#1 | branch | analyzer.py:784 | observed |
| guards | import_map#3 | branch | analyzer.py:784 | observed |
| flows_to | import_map#3 | im#1 | analyzer.py:785 | observed |
| flows_to | callee#1 | im#1 | analyzer.py:785 | observed |
| flows_to | import_map#3 | sym#1 | analyzer.py:785 | observed |
| flows_to | callee#1 | sym#1 | analyzer.py:785 | observed |
| guards | sym#1 | branch | analyzer.py:786 | observed |
| guards | im#1 | branch | analyzer.py:786 | observed |
| guards | definitions#1 | branch | analyzer.py:786 | observed |
| flows_to | definitions#1 | target_id#3 | analyzer.py:787 | observed |
| flows_to | im#1 | target_id#3 | analyzer.py:787 | observed |
| flows_to | sym#1 | target_id#3 | analyzer.py:787 | observed |
| phi_input | resolution#7 | resolution#10 | analyzer.py:786 | strongly_inferred |
| phi_input | resolution#9 | resolution#10 | analyzer.py:786 | strongly_inferred |
| phi_input | target_id#1 | target_id#4 | analyzer.py:786 | strongly_inferred |
| phi_input | target_id#3 | target_id#4 | analyzer.py:786 | strongly_inferred |
| phi_input | im#1 | im#2 | analyzer.py:784 | strongly_inferred |
| phi_input | im:undefined | im#2 | analyzer.py:784 | unresolved |
| phi_input | resolution#7 | resolution#11 | analyzer.py:784 | strongly_inferred |
| phi_input | resolution#10 | resolution#11 | analyzer.py:784 | strongly_inferred |
| phi_input | sym#1 | sym#2 | analyzer.py:784 | strongly_inferred |
| phi_input | sym:undefined | sym#2 | analyzer.py:784 | unresolved |
| phi_input | target_id#4 | target_id#5 | analyzer.py:784 | strongly_inferred |
| phi_input | target_id#1 | target_id#5 | analyzer.py:784 | strongly_inferred |
| phi_input | im#2 | im#3 | analyzer.py:782 | strongly_inferred |
| phi_input | im:undefined | im#3 | analyzer.py:782 | unresolved |
| phi_input | resolution#8 | resolution#12 | analyzer.py:782 | strongly_inferred |
| phi_input | resolution#11 | resolution#12 | analyzer.py:782 | strongly_inferred |
| phi_input | sym#2 | sym#3 | analyzer.py:782 | strongly_inferred |
| phi_input | sym:undefined | sym#3 | analyzer.py:782 | unresolved |
| phi_input | target_id#5 | target_id#6 | analyzer.py:782 | strongly_inferred |
| phi_input | target_id#2 | target_id#6 | analyzer.py:782 | strongly_inferred |
| flows_to | callee#1 | head#1 | analyzer.py:789 | observed |
| flows_to | callee#1 | tail#1 | analyzer.py:789 | observed |
| guards | head#1 | branch | analyzer.py:790 | observed |
| guards | import_map#3 | branch | analyzer.py:790 | observed |
| flows_to | import_map#3 | im#4 | analyzer.py:791 | observed |
| flows_to | head#1 | im#4 | analyzer.py:791 | observed |
| flows_to | import_map#3 | sym#4 | analyzer.py:791 | observed |
| flows_to | head#1 | sym#4 | analyzer.py:791 | observed |
| flows_to | sym#4 | candidate#1 | analyzer.py:792 | observed |
| flows_to | tail#1 | candidate#1 | analyzer.py:792 | observed |
| guards | im#4 | branch | analyzer.py:793 | observed |
| guards | candidate#1 | branch | analyzer.py:793 | observed |
| guards | definitions#1 | branch | analyzer.py:793 | observed |
State regions
| Access | Function | Region | Kind | Evidence |
|---|---|---|---|---|
| reads_state | infer_effect | analyzer:global:EFFECT_PATTERNS[] | module_global_container | analyzer.py:34 |
| writes_state | FunctionScanner.__init__ | analyzer:FunctionScanner:self.file_rel | object_field | analyzer.py:124 |
| writes_state | FunctionScanner.__init__ | analyzer:FunctionScanner:self.owner | object_field | analyzer.py:125 |
| writes_state | FunctionScanner.__init__ | analyzer:FunctionScanner:self.calls | object_field | analyzer.py:126 |
| writes_state | FunctionScanner.__init__ | analyzer:FunctionScanner:self.controls | object_field | analyzer.py:127 |
| writes_state | FunctionScanner.__init__ | analyzer:FunctionScanner:self.effects | object_field | analyzer.py:128 |
| writes_state | FunctionScanner.__init__ | analyzer:FunctionScanner:self.state_writes | object_field | analyzer.py:129 |
| writes_state | FunctionScanner.__init__ | analyzer:FunctionScanner:self.state_reads | object_field | analyzer.py:130 |
| writes_state | FunctionScanner.__init__ | analyzer:FunctionScanner:self.issues | object_field | analyzer.py:131 |
| reads_state | FunctionScanner._control | analyzer:FunctionScanner:self.controls | object_field | analyzer.py:134 |
| reads_state | FunctionScanner.visit_Try | analyzer:FunctionScanner:self.controls | object_field | analyzer.py:146 |
| reads_state | FunctionScanner.visit_Try | analyzer:FunctionScanner:self.issues | object_field | analyzer.py:149 |
| reads_state | FunctionScanner.visit_Try | analyzer:FunctionScanner:self.issues | object_field | analyzer.py:152 |
| reads_state | FunctionScanner.visit_Call | analyzer:FunctionScanner:self.calls | object_field | analyzer.py:158 |
| reads_state | FunctionScanner.visit_Call | analyzer:FunctionScanner:self.effects | object_field | analyzer.py:161 |
| reads_state | FunctionScanner.visit_Attribute | analyzer:FunctionScanner:self.state_reads | object_field | analyzer.py:167 |
| reads_state | FunctionScanner.visit_Assign | analyzer:FunctionScanner:self.state_writes | object_field | analyzer.py:173 |
| reads_state | FunctionScanner.visit_AnnAssign | analyzer:FunctionScanner:self.state_writes | object_field | analyzer.py:178 |
| reads_state | FunctionScanner.visit_AugAssign | analyzer:FunctionScanner:self.state_writes | object_field | analyzer.py:183 |
| writes_state | _reuse_function_fragment | param:nodes[] | parameter_container | analyzer.py:363 |
| writes_state | _reuse_function_fragment | param:nodes[] | parameter_container | analyzer.py:368 |
| writes_state | CacheStore.__init__ | cache:CacheStore:self.root | object_field | cache.py:99 |
| writes_state | CacheStore.__init__ | cache:CacheStore:self.graphs | object_field | cache.py:100 |
| reads_state | CacheStore.__init__ | cache:CacheStore:self.root | object_field | cache.py:100 |
| writes_state | CacheStore.__init__ | cache:CacheStore:self.commits | object_field | cache.py:101 |
| reads_state | CacheStore.__init__ | cache:CacheStore:self.root | object_field | cache.py:101 |
| writes_state | CacheStore.__init__ | cache:CacheStore:self.reviews | object_field | cache.py:102 |
| reads_state | CacheStore.__init__ | cache:CacheStore:self.root | object_field | cache.py:102 |
| reads_state | CacheStore.graph_path | cache:CacheStore:self.graphs | object_field | cache.py:105 |
| reads_state | CacheStore.commit_path | cache:CacheStore:self.commits | object_field | cache.py:108 |
| reads_state | CacheStore.register_review | cache:CacheStore:self.reviews | object_field | cache.py:139 |
| writes_state | ScopeFacts.__init__ | dataflow:ScopeFacts:self.assigned | object_field | dataflow.py:43 |
| writes_state | ScopeFacts.__init__ | dataflow:ScopeFacts:self.globals | object_field | dataflow.py:44 |
| writes_state | ScopeFacts.__init__ | dataflow:ScopeFacts:self.nonlocals | object_field | dataflow.py:45 |
| reads_state | ScopeFacts.visit_Global | dataflow:ScopeFacts:self.globals | object_field | dataflow.py:48 |
| reads_state | ScopeFacts.visit_Nonlocal | dataflow:ScopeFacts:self.nonlocals | object_field | dataflow.py:51 |
| reads_state | ScopeFacts._store_target | dataflow:ScopeFacts:self.assigned | object_field | dataflow.py:54 |
| reads_state | ScopeFacts.visit_ExceptHandler | dataflow:ScopeFacts:self.assigned | object_field | dataflow.py:90 |
| reads_state | ScopeFacts.visit_FunctionDef | dataflow:ScopeFacts:self.assigned | object_field | dataflow.py:100 |
| reads_state | ScopeFacts.visit_ClassDef | dataflow:ScopeFacts:self.assigned | object_field | dataflow.py:105 |
| writes_state | LoadNameCollector.__init__ | dataflow:LoadNameCollector:self.names | object_field | dataflow.py:124 |
| writes_state | LoadNameCollector.__init__ | dataflow:LoadNameCollector:self.bound_stack | object_field | dataflow.py:125 |
| reads_state | LoadNameCollector.bound | dataflow:LoadNameCollector:self.bound_stack | object_field | dataflow.py:130 |
| reads_state | LoadNameCollector.visit_Name | dataflow:LoadNameCollector:self.bound | object_field | dataflow.py:135 |
| reads_state | LoadNameCollector.visit_Name | dataflow:LoadNameCollector:self.names | object_field | dataflow.py:136 |
| reads_state | LoadNameCollector.visit_Lambda | dataflow:LoadNameCollector:self.bound_stack | object_field | dataflow.py:146 |
| reads_state | LoadNameCollector.visit_Lambda | dataflow:LoadNameCollector:self.bound_stack | object_field | dataflow.py:148 |
| reads_state | LoadNameCollector._visit_comp | dataflow:LoadNameCollector:self.bound_stack | object_field | dataflow.py:151 |
| reads_state | LoadNameCollector._visit_comp | dataflow:LoadNameCollector:self.bound_stack | object_field | dataflow.py:159 |
| writes_state | StateAccessCollector.__init__ | dataflow:StateAccessCollector:self.class_name | object_field | dataflow.py:221 |
| writes_state | StateAccessCollector.__init__ | dataflow:StateAccessCollector:self.module | object_field | dataflow.py:222 |
| writes_state | StateAccessCollector.__init__ | dataflow:StateAccessCollector:self.module_globals | object_field | dataflow.py:223 |
| writes_state | StateAccessCollector.__init__ | dataflow:StateAccessCollector:self.params | object_field | dataflow.py:224 |
| writes_state | StateAccessCollector.__init__ | dataflow:StateAccessCollector:self.local_names | object_field | dataflow.py:225 |
| writes_state | StateAccessCollector.__init__ | dataflow:StateAccessCollector:self.globals_decl | object_field | dataflow.py:226 |
| writes_state | StateAccessCollector.__init__ | dataflow:StateAccessCollector:self.accesses | object_field | dataflow.py:227 |
| writes_state | StateAccessCollector.__init__ | dataflow:StateAccessCollector:self._seen | object_field | dataflow.py:228 |
| writes_state | StateAccessCollector.__init__ | dataflow:StateAccessCollector:self._skip_attr_nodes | object_field | dataflow.py:229 |
| reads_state | StateAccessCollector.add | dataflow:StateAccessCollector:self._seen | object_field | dataflow.py:233 |
| reads_state | StateAccessCollector.add | dataflow:StateAccessCollector:self._seen | object_field | dataflow.py:234 |
| reads_state | StateAccessCollector.add | dataflow:StateAccessCollector:self.accesses | object_field | dataflow.py:235 |
| reads_state | StateAccessCollector._field_region | dataflow:StateAccessCollector:self.class_name | object_field | dataflow.py:243 |
| reads_state | StateAccessCollector._field_region | dataflow:StateAccessCollector:self.module | object_field | dataflow.py:244 |
| reads_state | StateAccessCollector._field_region | dataflow:StateAccessCollector:self.class_name | object_field | dataflow.py:246 |
| reads_state | StateAccessCollector._field_region | dataflow:StateAccessCollector:self.module | object_field | dataflow.py:247 |
| reads_state | StateAccessCollector.visit_Call | dataflow:StateAccessCollector:self._skip_attr_nodes | object_field | dataflow.py:260 |
| reads_state | StateAccessCollector.visit_Attribute | dataflow:StateAccessCollector:self._skip_attr_nodes | object_field | dataflow.py:269 |
| reads_state | StateAccessCollector.visit_Subscript | dataflow:StateAccessCollector:self.params | object_field | dataflow.py:286 |
| reads_state | StateAccessCollector.visit_Subscript | dataflow:StateAccessCollector:self.module_globals | object_field | dataflow.py:288 |
| reads_state | StateAccessCollector.visit_Subscript | dataflow:StateAccessCollector:self.globals_decl | object_field | dataflow.py:288 |
| reads_state | StateAccessCollector.visit_Subscript | dataflow:StateAccessCollector:self.module | object_field | dataflow.py:289 |
| reads_state | StateAccessCollector.visit_Name | dataflow:StateAccessCollector:self.globals_decl | object_field | dataflow.py:294 |
| reads_state | StateAccessCollector.visit_Name | dataflow:StateAccessCollector:self.module | object_field | dataflow.py:296 |
| reads_state | StateAccessCollector.visit_Name | dataflow:StateAccessCollector:self.module_globals | object_field | dataflow.py:297 |
| reads_state | StateAccessCollector.visit_Name | dataflow:StateAccessCollector:self.local_names | object_field | dataflow.py:297 |
| reads_state | StateAccessCollector.visit_Name | dataflow:StateAccessCollector:self.module | object_field | dataflow.py:299 |
| reads_state | StateAccessCollector.visit_AugAssign | dataflow:StateAccessCollector:self.globals_decl | object_field | dataflow.py:306 |
| reads_state | StateAccessCollector.visit_AugAssign | dataflow:StateAccessCollector:self.module_globals | object_field | dataflow.py:306 |
| reads_state | StateAccessCollector.visit_AugAssign | dataflow:StateAccessCollector:self.local_names | object_field | dataflow.py:306 |
| reads_state | StateAccessCollector.visit_AugAssign | dataflow:StateAccessCollector:self.module | object_field | dataflow.py:307 |
| reads_state | StateAccessCollector.visit_AugAssign | dataflow:StateAccessCollector:self.params | object_field | dataflow.py:324 |
| reads_state | StateAccessCollector.visit_AugAssign | dataflow:StateAccessCollector:self.module_globals | object_field | dataflow.py:327 |
| reads_state | StateAccessCollector.visit_AugAssign | dataflow:StateAccessCollector:self.globals_decl | object_field | dataflow.py:327 |
| reads_state | StateAccessCollector.visit_AugAssign | dataflow:StateAccessCollector:self.module | object_field | dataflow.py:328 |
| reads_state | block_definitely_terminates | param:stmts[] | parameter_container | dataflow.py:387 |
| writes_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.fn | object_field | dataflow.py:411 |
| writes_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.rel | object_field | dataflow.py:412 |
| writes_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.qname | object_field | dataflow.py:413 |
| writes_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.owner_id | object_field | dataflow.py:414 |
| writes_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.source_hash | object_field | dataflow.py:415 |
| writes_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.module | object_field | dataflow.py:416 |
| writes_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.class_name | object_field | dataflow.py:417 |
| writes_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.nodes | object_field | dataflow.py:418 |
| writes_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.edges | object_field | dataflow.py:419 |
| writes_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.findings | object_field | dataflow.py:420 |
| writes_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.version | object_field | dataflow.py:421 |
| writes_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.params | object_field | dataflow.py:422 |
| reads_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.params | object_field | dataflow.py:424 |
| reads_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.params | object_field | dataflow.py:426 |
| writes_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.globals_decl | object_field | dataflow.py:430 |
| writes_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.nonlocals_decl | object_field | dataflow.py:431 |
| writes_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.local_names | object_field | dataflow.py:432 |
| reads_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.params | object_field | dataflow.py:432 |
| reads_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.globals_decl | object_field | dataflow.py:432 |
| reads_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.nonlocals_decl | object_field | dataflow.py:432 |
| writes_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.module_globals | object_field | dataflow.py:433 |
| writes_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.env | object_field | dataflow.py:434 |
| writes_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.state_accesses | object_field | dataflow.py:435 |
| writes_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.phi_nodes | object_field | dataflow.py:436 |
| writes_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.alias_edges | object_field | dataflow.py:437 |
| writes_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.explicit_raises | object_field | dataflow.py:438 |
| writes_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.handlers | object_field | dataflow.py:439 |
| writes_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self.unresolved_local_uses | object_field | dataflow.py:440 |
| writes_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self._undefined_node_by_name | object_field | dataflow.py:441 |
| writes_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self._handler_nodes | object_field | dataflow.py:442 |
| writes_state | FunctionDataflowBuilder.__init__ | dataflow:FunctionDataflowBuilder:self._undefined_findings_seen | object_field | dataflow.py:443 |
| reads_state | FunctionDataflowBuilder._ev | dataflow:FunctionDataflowBuilder:self.rel | object_field | dataflow.py:448 |
| reads_state | FunctionDataflowBuilder._ev | dataflow:FunctionDataflowBuilder:self.source_hash | object_field | dataflow.py:448 |
| reads_state | FunctionDataflowBuilder._add_edge | dataflow:FunctionDataflowBuilder:self.edges | object_field | dataflow.py:451 |
| reads_state | FunctionDataflowBuilder._add_edge | dataflow:FunctionDataflowBuilder:self.edges | object_field | dataflow.py:452 |
| reads_state | FunctionDataflowBuilder._init_params | dataflow:FunctionDataflowBuilder:self.params | object_field | dataflow.py:455 |
| reads_state | FunctionDataflowBuilder._init_params | dataflow:FunctionDataflowBuilder:self.fn | object_field | dataflow.py:456 |
| writes_state | FunctionDataflowBuilder._init_params | dataflow:FunctionDataflowBuilder:self.env[] | state_container | dataflow.py:457 |
| reads_state | FunctionDataflowBuilder._init_params | dataflow:FunctionDataflowBuilder:self.env | object_field | dataflow.py:457 |
| reads_state | FunctionDataflowBuilder._new_value | dataflow:FunctionDataflowBuilder:self.version[] | state_container | dataflow.py:461 |
| writes_state | FunctionDataflowBuilder._new_value | dataflow:FunctionDataflowBuilder:self.version[] | state_container | dataflow.py:461 |
| reads_state | FunctionDataflowBuilder._new_value | dataflow:FunctionDataflowBuilder:self.version[] | state_container | dataflow.py:462 |
| reads_state | FunctionDataflowBuilder._new_value | dataflow:FunctionDataflowBuilder:self.version | object_field | dataflow.py:462 |
| writes_state | FunctionDataflowBuilder._new_value | dataflow:FunctionDataflowBuilder:self.version[] | state_container | dataflow.py:465 |
| reads_state | FunctionDataflowBuilder._new_value | dataflow:FunctionDataflowBuilder:self.version | object_field | dataflow.py:465 |
| reads_state | FunctionDataflowBuilder._new_value | dataflow:FunctionDataflowBuilder:self.version[] | state_container | dataflow.py:465 |
| reads_state | FunctionDataflowBuilder._new_value | dataflow:FunctionDataflowBuilder:self.rel | object_field | dataflow.py:466 |
| reads_state | FunctionDataflowBuilder._new_value | dataflow:FunctionDataflowBuilder:self.qname | object_field | dataflow.py:466 |
| writes_state | FunctionDataflowBuilder._new_value | dataflow:FunctionDataflowBuilder:self.nodes[] | state_container | dataflow.py:467 |
| reads_state | FunctionDataflowBuilder._new_value | dataflow:FunctionDataflowBuilder:self.nodes | object_field | dataflow.py:467 |
| reads_state | FunctionDataflowBuilder._new_value | dataflow:FunctionDataflowBuilder:self.rel | object_field | dataflow.py:471 |
| reads_state | FunctionDataflowBuilder._new_value | dataflow:FunctionDataflowBuilder:self.qname | object_field | dataflow.py:472 |
| reads_state | FunctionDataflowBuilder._new_value | dataflow:FunctionDataflowBuilder:self.owner_id | object_field | dataflow.py:481 |
| reads_state | FunctionDataflowBuilder._undefined | dataflow:FunctionDataflowBuilder:self._undefined_node_by_name | object_field | dataflow.py:485 |
| reads_state | FunctionDataflowBuilder._undefined | dataflow:FunctionDataflowBuilder:self._undefined_node_by_name[] | state_container | dataflow.py:486 |
| reads_state | FunctionDataflowBuilder._undefined | dataflow:FunctionDataflowBuilder:self._undefined_node_by_name | object_field | dataflow.py:486 |
| reads_state | FunctionDataflowBuilder._undefined | dataflow:FunctionDataflowBuilder:self.rel | object_field | dataflow.py:487 |
| reads_state | FunctionDataflowBuilder._undefined | dataflow:FunctionDataflowBuilder:self.qname | object_field | dataflow.py:487 |
| writes_state | FunctionDataflowBuilder._undefined | dataflow:FunctionDataflowBuilder:self.nodes[] | state_container | dataflow.py:488 |
| reads_state | FunctionDataflowBuilder._undefined | dataflow:FunctionDataflowBuilder:self.nodes | object_field | dataflow.py:488 |
| reads_state | FunctionDataflowBuilder._undefined | dataflow:FunctionDataflowBuilder:self.rel | object_field | dataflow.py:492 |
| reads_state | FunctionDataflowBuilder._undefined | dataflow:FunctionDataflowBuilder:self.qname | object_field | dataflow.py:493 |
| writes_state | FunctionDataflowBuilder._undefined | dataflow:FunctionDataflowBuilder:self._undefined_node_by_name[] | state_container | dataflow.py:499 |
| reads_state | FunctionDataflowBuilder._undefined | dataflow:FunctionDataflowBuilder:self._undefined_node_by_name | object_field | dataflow.py:499 |
| reads_state | FunctionDataflowBuilder._emit_undefined_finding | dataflow:FunctionDataflowBuilder:self._undefined_findings_seen | object_field | dataflow.py:504 |
| reads_state | FunctionDataflowBuilder._emit_undefined_finding | dataflow:FunctionDataflowBuilder:self._undefined_findings_seen | object_field | dataflow.py:506 |
| reads_state | FunctionDataflowBuilder._emit_undefined_finding | dataflow:FunctionDataflowBuilder:self.findings | object_field | dataflow.py:507 |
| reads_state | FunctionDataflowBuilder._emit_undefined_finding | dataflow:FunctionDataflowBuilder:self.rel | object_field | dataflow.py:508 |
| reads_state | FunctionDataflowBuilder._emit_undefined_finding | dataflow:FunctionDataflowBuilder:self.qname | object_field | dataflow.py:508 |
| reads_state | FunctionDataflowBuilder._record_use_name | dataflow:FunctionDataflowBuilder:self.env | object_field | dataflow.py:513 |
| reads_state | FunctionDataflowBuilder._record_use_name | param:env[] | parameter_container | dataflow.py:515 |
| reads_state | FunctionDataflowBuilder._record_use_name | dataflow:FunctionDataflowBuilder:self.unresolved_local_uses | object_field | dataflow.py:518 |
| writes_state | FunctionDataflowBuilder._record_use_name | dataflow:FunctionDataflowBuilder:self.unresolved_local_uses | object_field | dataflow.py:518 |
| reads_state | FunctionDataflowBuilder._record_use_name | dataflow:FunctionDataflowBuilder:self.local_names | object_field | dataflow.py:525 |
| reads_state | FunctionDataflowBuilder._record_use_name | dataflow:FunctionDataflowBuilder:self.globals_decl | object_field | dataflow.py:525 |
| reads_state | FunctionDataflowBuilder._record_use_name | dataflow:FunctionDataflowBuilder:self.nonlocals_decl | object_field | dataflow.py:525 |
| reads_state | FunctionDataflowBuilder._record_use_name | dataflow:FunctionDataflowBuilder:self.unresolved_local_uses | object_field | dataflow.py:528 |
| writes_state | FunctionDataflowBuilder._record_use_name | dataflow:FunctionDataflowBuilder:self.unresolved_local_uses | object_field | dataflow.py:528 |
| reads_state | FunctionDataflowBuilder._collect_state_accesses | dataflow:FunctionDataflowBuilder:self.class_name | object_field | dataflow.py:546 |
| reads_state | FunctionDataflowBuilder._collect_state_accesses | dataflow:FunctionDataflowBuilder:self.module | object_field | dataflow.py:547 |
| reads_state | FunctionDataflowBuilder._collect_state_accesses | dataflow:FunctionDataflowBuilder:self.module_globals | object_field | dataflow.py:548 |
| reads_state | FunctionDataflowBuilder._collect_state_accesses | dataflow:FunctionDataflowBuilder:self.params | object_field | dataflow.py:549 |
| reads_state | FunctionDataflowBuilder._collect_state_accesses | dataflow:FunctionDataflowBuilder:self.local_names | object_field | dataflow.py:550 |
| reads_state | FunctionDataflowBuilder._collect_state_accesses | dataflow:FunctionDataflowBuilder:self.globals_decl | object_field | dataflow.py:551 |
| reads_state | FunctionDataflowBuilder._collect_state_accesses | dataflow:FunctionDataflowBuilder:self.fn | object_field | dataflow.py:553 |
| writes_state | FunctionDataflowBuilder._collect_state_accesses | dataflow:FunctionDataflowBuilder:self.state_accesses | object_field | dataflow.py:555 |
| reads_state | FunctionDataflowBuilder._collect_state_accesses | dataflow:FunctionDataflowBuilder:self.state_accesses | object_field | dataflow.py:556 |
| reads_state | FunctionDataflowBuilder._collect_state_accesses | dataflow:FunctionDataflowBuilder:self.nodes | object_field | dataflow.py:559 |
| reads_state | FunctionDataflowBuilder._collect_state_accesses | dataflow:FunctionDataflowBuilder:self.owner_id | object_field | dataflow.py:563 |
| reads_state | FunctionDataflowBuilder._collect_state_accesses | dataflow:FunctionDataflowBuilder:self.nodes | object_field | dataflow.py:566 |
| reads_state | FunctionDataflowBuilder._collect_state_accesses | dataflow:FunctionDataflowBuilder:self.owner_id | object_field | dataflow.py:575 |
| reads_state | FunctionDataflowBuilder._define_target | dataflow:FunctionDataflowBuilder:self.globals_decl | object_field | dataflow.py:580 |
| reads_state | FunctionDataflowBuilder._define_target | dataflow:FunctionDataflowBuilder:self.nonlocals_decl | object_field | dataflow.py:580 |
| reads_state | FunctionDataflowBuilder._define_target | param:env[] | parameter_container | dataflow.py:585 |
| reads_state | FunctionDataflowBuilder._define_target | dataflow:FunctionDataflowBuilder:self.alias_edges | object_field | dataflow.py:586 |
| writes_state | FunctionDataflowBuilder._define_target | dataflow:FunctionDataflowBuilder:self.alias_edges | object_field | dataflow.py:586 |
| reads_state | FunctionDataflowBuilder._merge_envs | dataflow:FunctionDataflowBuilder:self.phi_nodes | object_field | dataflow.py:601 |
| writes_state | FunctionDataflowBuilder._merge_envs | dataflow:FunctionDataflowBuilder:self.phi_nodes | object_field | dataflow.py:601 |
| reads_state | FunctionDataflowBuilder._make_sink | dataflow:FunctionDataflowBuilder:self.rel | object_field | dataflow.py:611 |
| reads_state | FunctionDataflowBuilder._make_sink | dataflow:FunctionDataflowBuilder:self.qname | object_field | dataflow.py:611 |
| writes_state | FunctionDataflowBuilder._make_sink | dataflow:FunctionDataflowBuilder:self.nodes[] | state_container | dataflow.py:612 |
| reads_state | FunctionDataflowBuilder._make_sink | dataflow:FunctionDataflowBuilder:self.nodes | object_field | dataflow.py:612 |
| reads_state | FunctionDataflowBuilder._make_sink | dataflow:FunctionDataflowBuilder:self.rel | object_field | dataflow.py:617 |
| reads_state | FunctionDataflowBuilder._make_sink | dataflow:FunctionDataflowBuilder:self.qname | object_field | dataflow.py:618 |
| reads_state | FunctionDataflowBuilder._make_sink | dataflow:FunctionDataflowBuilder:self.owner_id | object_field | dataflow.py:623 |
| reads_state | FunctionDataflowBuilder.process_stmt | dataflow:FunctionDataflowBuilder:self.globals_decl | object_field | dataflow.py:648 |
| reads_state | FunctionDataflowBuilder.process_stmt | dataflow:FunctionDataflowBuilder:self.nonlocals_decl | object_field | dataflow.py:648 |
| reads_state | FunctionDataflowBuilder.process_stmt | dataflow:FunctionDataflowBuilder:self.rel | object_field | dataflow.py:665 |
| reads_state | FunctionDataflowBuilder.process_stmt | dataflow:FunctionDataflowBuilder:self.qname | object_field | dataflow.py:665 |
| reads_state | FunctionDataflowBuilder.process_stmt | dataflow:FunctionDataflowBuilder:self.rel | object_field | dataflow.py:682 |
| reads_state | FunctionDataflowBuilder.process_stmt | dataflow:FunctionDataflowBuilder:self.qname | object_field | dataflow.py:682 |
| reads_state | FunctionDataflowBuilder.process_stmt | dataflow:FunctionDataflowBuilder:self.rel | object_field | dataflow.py:695 |
| reads_state | FunctionDataflowBuilder.process_stmt | dataflow:FunctionDataflowBuilder:self.qname | object_field | dataflow.py:695 |
| reads_state | FunctionDataflowBuilder.process_stmt | dataflow:FunctionDataflowBuilder:self.rel | object_field | dataflow.py:707 |
| reads_state | FunctionDataflowBuilder.process_stmt | dataflow:FunctionDataflowBuilder:self.qname | object_field | dataflow.py:707 |
| reads_state | FunctionDataflowBuilder.process_stmt | dataflow:FunctionDataflowBuilder:self.rel | object_field | dataflow.py:739 |
| reads_state | FunctionDataflowBuilder.process_stmt | dataflow:FunctionDataflowBuilder:self.qname | object_field | dataflow.py:739 |
| reads_state | FunctionDataflowBuilder.process_stmt | dataflow:FunctionDataflowBuilder:self.rel | object_field | dataflow.py:744 |
| reads_state | FunctionDataflowBuilder.process_stmt | dataflow:FunctionDataflowBuilder:self.qname | object_field | dataflow.py:744 |
| reads_state | FunctionDataflowBuilder.process_stmt | dataflow:FunctionDataflowBuilder:self.local_names | object_field | dataflow.py:747 |
| writes_state | FunctionDataflowBuilder.process_stmt | dataflow:FunctionDataflowBuilder:self.nodes[] | state_container | dataflow.py:748 |
| reads_state | FunctionDataflowBuilder.process_stmt | dataflow:FunctionDataflowBuilder:self.nodes | object_field | dataflow.py:748 |
| reads_state | FunctionDataflowBuilder.process_stmt | dataflow:FunctionDataflowBuilder:self.rel | object_field | dataflow.py:748 |
| reads_state | FunctionDataflowBuilder.process_stmt | dataflow:FunctionDataflowBuilder:self.qname | object_field | dataflow.py:748 |
| reads_state | FunctionDataflowBuilder.process_stmt | dataflow:FunctionDataflowBuilder:self.owner_id | object_field | dataflow.py:749 |
| reads_state | FunctionDataflowBuilder._build_exception_flow | dataflow:FunctionDataflowBuilder:self.fn | object_field | dataflow.py:835 |
| writes_state | FunctionDataflowBuilder.build | dataflow:FunctionDataflowBuilder:self.env | object_field | dataflow.py:838 |
| reads_state | FunctionDataflowBuilder.build | dataflow:FunctionDataflowBuilder:self.fn | object_field | dataflow.py:838 |
| reads_state | FunctionDataflowBuilder.build | dataflow:FunctionDataflowBuilder:self.env | object_field | dataflow.py:838 |
| reads_state | FunctionDataflowBuilder.build | dataflow:FunctionDataflowBuilder:self.state_accesses | object_field | dataflow.py:840 |
| reads_state | FunctionDataflowBuilder.build | dataflow:FunctionDataflowBuilder:self.state_accesses | object_field | dataflow.py:841 |
| reads_state | FunctionDataflowBuilder.build | dataflow:FunctionDataflowBuilder:self.nodes | object_field | dataflow.py:843 |
| reads_state | FunctionDataflowBuilder.build | dataflow:FunctionDataflowBuilder:self.edges | object_field | dataflow.py:844 |
| reads_state | FunctionDataflowBuilder.build | dataflow:FunctionDataflowBuilder:self.findings | object_field | dataflow.py:845 |
| reads_state | FunctionDataflowBuilder.build | dataflow:FunctionDataflowBuilder:self.nodes | object_field | dataflow.py:847 |
| reads_state | FunctionDataflowBuilder.build | dataflow:FunctionDataflowBuilder:self.phi_nodes | object_field | dataflow.py:848 |
| reads_state | FunctionDataflowBuilder.build | dataflow:FunctionDataflowBuilder:self.edges | object_field | dataflow.py:849 |
| reads_state | FunctionDataflowBuilder.build | dataflow:FunctionDataflowBuilder:self.alias_edges | object_field | dataflow.py:850 |
| reads_state | FunctionDataflowBuilder.build | dataflow:FunctionDataflowBuilder:self.state_accesses | object_field | dataflow.py:854 |
| reads_state | FunctionDataflowBuilder.build | dataflow:FunctionDataflowBuilder:self.handlers | object_field | dataflow.py:856 |
| reads_state | FunctionDataflowBuilder.build | dataflow:FunctionDataflowBuilder:self.explicit_raises | object_field | dataflow.py:857 |
| reads_state | FunctionDataflowBuilder.build | dataflow:FunctionDataflowBuilder:self.unresolved_local_uses | object_field | dataflow.py:858 |
| reads_state | write_semantic_diff_markdown | param:diff[] | parameter_container | diff_report.py:18 |
| reads_state | write_semantic_diff_markdown | param:diff[] | parameter_container | diff_report.py:50 |
| reads_state | write_semantic_diff_markdown | param:diff[] | parameter_container | diff_report.py:53 |
| reads_state | write_semantic_diff_html | param:diff[] | parameter_container | diff_report.py:70 |
| reads_state | write_semantic_diff_html | param:diff[] | parameter_container | diff_report.py:89 |
| reads_state | write_semantic_diff_html | param:diff[] | parameter_container | diff_report.py:93 |
| reads_state | build_impact_index | param:graph[] | parameter_container | impact.py:35 |
| reads_state | build_impact_index | param:graph[] | parameter_container | impact.py:36 |
| reads_state | resolve_impact_target | param:index[] | parameter_container | impact.py:185 |
| reads_state | resolve_impact_target | param:index[] | parameter_container | impact.py:188 |
| reads_state | resolve_impact_target | param:index[] | parameter_container | impact.py:192 |
| reads_state | analyze_impact | param:graph[] | parameter_container | impact.py:223 |
| reads_state | analyze_impact | param:index[] | parameter_container | impact.py:229 |
| reads_state | analyze_impact | param:index[] | parameter_container | impact.py:230 |
| reads_state | top_impact_targets | param:index[] | parameter_container | impact.py:367 |
| reads_state | _aggregate_impact | param:seed_ids[] | parameter_container | pr_review.py:59 |
| reads_state | review_markdown | param:review[] | parameter_container | pr_review.py:114 |
| reads_state | review_markdown | param:review[] | parameter_container | pr_review.py:115 |
| reads_state | review_markdown | param:review[] | parameter_container | pr_review.py:135 |
| reads_state | write_json_outputs | param:graph[] | parameter_container | report.py:25 |
| reads_state | write_json_outputs | param:graph[] | parameter_container | report.py:26 |
| reads_state | write_json_outputs | param:graph[] | parameter_container | report.py:27 |
| reads_state | write_json_outputs | param:graph[] | parameter_container | report.py:28 |
| reads_state | write_json_outputs | param:graph[] | parameter_container | report.py:35 |
| reads_state | write_json_outputs | param:graph[] | parameter_container | report.py:36 |
| reads_state | write_json_outputs | param:graph[] | parameter_container | report.py:39 |
| reads_state | write_json_outputs | param:graph[] | parameter_container | report.py:40 |
| reads_state | write_json_outputs | param:graph[] | parameter_container | report.py:41 |
| reads_state | write_json_outputs | param:graph[] | parameter_container | report.py:42 |
| reads_state | write_json_outputs | param:graph[] | parameter_container | report.py:45 |
| reads_state | write_json_outputs | param:graph[] | parameter_container | report.py:46 |
| reads_state | write_graphml | param:graph[] | parameter_container | report.py:55 |
| reads_state | write_graphml | param:graph[] | parameter_container | report.py:62 |
| reads_state | _overview_graph | param:graph[] | parameter_container | report.py:73 |
| reads_state | _overview_graph | param:graph[] | parameter_container | report.py:74 |
| reads_state | _svg_graph | param:graph[] | parameter_container | report.py:118 |
| reads_state | write_html | param:graph[] | parameter_container | report.py:122 |
| reads_state | write_html | param:graph[] | parameter_container | report.py:123 |
| reads_state | write_html | param:graph[] | parameter_container | report.py:130 |
| reads_state | write_html | param:graph[] | parameter_container | report.py:131 |
| reads_state | write_html | param:graph[] | parameter_container | report.py:132 |
| reads_state | write_html | param:graph[] | parameter_container | report.py:133 |
| reads_state | write_html | param:graph[] | parameter_container | report.py:134 |
| reads_state | write_html | param:graph[] | parameter_container | report.py:136 |
| reads_state | write_html | param:graph[] | parameter_container | report.py:138 |
| reads_state | write_html | param:graph[] | parameter_container | report.py:140 |
| reads_state | write_html | param:graph[] | parameter_container | report.py:143 |
| reads_state | write_html | param:graph[] | parameter_container | report.py:176 |
| reads_state | write_markdown_report | param:graph[] | parameter_container | report.py:184 |
| reads_state | write_markdown_report | param:graph[] | parameter_container | report.py:185 |
| reads_state | write_markdown_report | param:graph[] | parameter_container | report.py:188 |
Module binding reads
| Function | Binding | Evidence |
|---|---|---|
| infer_effect | analyzer:binding:EFFECT_PATTERNS | analyzer.py:34 |
| iter_python_files | analyzer:binding:SKIP_DIRS | analyzer.py:106 |
| _build_fragment_reuse_index | analyzer:binding:GLOBAL_RECOMPUTED_FINDINGS | analyzer.py:333 |
| _preload_reused_graph | analyzer:binding:GLOBAL_RECOMPUTED_FINDINGS | analyzer.py:476 |
| analyze | analyzer:binding:DATA_EDGE_TYPES | analyzer.py:901 |
| analyze | analyzer:binding:SCHEMA | analyzer.py:914 |
| analyze | analyzer:binding:ANALYZER_VERSION | analyzer.py:915 |
| analysis_config | cache:binding:CACHE_VERSION | cache.py:25 |
| analyze_with_cache | cache:binding:CACHE_VERSION | cache.py:187 |
| analyze_with_cache | cache:binding:CACHE_VERSION | cache.py:215 |
| analyze_with_cache | cache:binding:CACHE_VERSION | cache.py:262 |
| compare_metadata | git_adapter:binding:GIT_ADAPTER_VERSION | git_adapter.py:104 |
| build_impact_index | impact:binding:ENTITY_TYPES | impact.py:56 |
| build_impact_index | impact:binding:ENTITY_TYPES | impact.py:71 |
| build_impact_index | impact:binding:DATA_EDGE_TYPES | impact.py:73 |
| build_impact_index | impact:binding:ENTITY_TYPES | impact.py:108 |
| analyze_impact | impact:binding:DATA_NODE_TYPES | impact.py:277 |
| assess_partial_recompute | incremental:binding:INCREMENTAL_VERSION | incremental.py:73 |
| assess_partial_recompute | incremental:binding:INCREMENTAL_VERSION | incremental.py:116 |
| assess_partial_recompute | incremental:binding:INCREMENTAL_VERSION | incremental.py:127 |
| build_invalidation_plan | incremental:binding:FUNCTION_TYPES | incremental.py:200 |
| build_invalidation_plan | incremental:binding:FUNCTION_TYPES | incremental.py:211 |
| build_invalidation_plan | incremental:binding:INCREMENTAL_VERSION | incremental.py:277 |
| build_pr_review | pr_review:binding:PR_REVIEW_VERSION | pr_review.py:100 |
| build_project_summary | product_ui:binding:PRODUCT_VERSION | product_ui.py:40 |
| build_review_summary | product_ui:binding:PRODUCT_VERSION | product_ui.py:161 |
| _entity_map | semantic_diff:binding:ENTITY_TYPES | semantic_diff.py:91 |
| _impact_changes | semantic_diff:binding:FUNCTION_TYPES | semantic_diff.py:146 |
| _rename_candidates | semantic_diff:binding:FUNCTION_TYPES | semantic_diff.py:187 |
| _rename_candidates | semantic_diff:binding:FUNCTION_TYPES | semantic_diff.py:190 |
| compare_graphs | semantic_diff:binding:RELATION_TYPES | semantic_diff.py:229 |
| compare_graphs | semantic_diff:binding:FUNCTION_TYPES | semantic_diff.py:239 |
| compare_graphs | semantic_diff:binding:FUNCTION_TYPES | semantic_diff.py:241 |
| compare_graphs | semantic_diff:binding:FUNCTION_TYPES | semantic_diff.py:245 |
| compare_graphs | semantic_diff:binding:FUNCTION_TYPES | semantic_diff.py:247 |
| compare_graphs | semantic_diff:binding:FUNCTION_TYPES | semantic_diff.py:257 |
| compare_graphs | semantic_diff:binding:FUNCTION_TYPES | semantic_diff.py:271 |
| compare_graphs | semantic_diff:binding:FUNCTION_TYPES | semantic_diff.py:276 |
| compare_graphs | semantic_diff:binding:FUNCTION_TYPES | semantic_diff.py:277 |
| compare_graphs | semantic_diff:binding:DIFF_VERSION | semantic_diff.py:350 |
Explicit exception flow
| Relation | Source | Target | Evidence | Status |
|---|---|---|---|---|
| raises | _git | raise GitAdapterError | git_adapter.py:21 | observed |
| exception_flow | raise GitAdapterError | uncaught:GitAdapterError | git_adapter.py:21 | unresolved |
| raises | _git | raise GitAdapterError | git_adapter.py:24 | observed |
| exception_flow | raise GitAdapterError | uncaught:GitAdapterError | git_adapter.py:24 | unresolved |
| raises | ensure_git_repo | raise GitAdapterError | git_adapter.py:29 | observed |
| exception_flow | raise GitAdapterError | uncaught:GitAdapterError | git_adapter.py:29 | unresolved |
| raises | _safe_member_path | raise GitAdapterError | git_adapter.py:53 | observed |
| exception_flow | raise GitAdapterError | uncaught:GitAdapterError | git_adapter.py:53 | unresolved |
| raises | _safe_member_path | raise GitAdapterError | git_adapter.py:57 | observed |
| exception_flow | raise GitAdapterError | uncaught:GitAdapterError | git_adapter.py:57 | unresolved |
| raises | compare_metadata | raise GitAdapterError | git_adapter.py:101 | observed |
| exception_flow | raise GitAdapterError | uncaught:GitAdapterError | git_adapter.py:101 | unresolved |
| raises | parse_github_event | raise GitAdapterError | git_adapter.py:126 | observed |
| exception_flow | raise GitAdapterError | uncaught:GitAdapterError | git_adapter.py:126 | unresolved |
| raises | resolve_impact_target | raise KeyError | impact.py:194 | observed |
| exception_flow | raise KeyError | uncaught:KeyError | impact.py:194 | unresolved |
| raises | resolve_impact_target | raise ValueError | impact.py:198 | observed |
| exception_flow | raise ValueError | uncaught:ValueError | impact.py:198 | unresolved |
Findings
| Severity | Class | Type | Location | Symbol | Evidence statement |
|---|---|---|---|---|---|
| info | hotspot | boundary_heavy | analyzer.py: | infer_effect | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | analyzer.py: | FunctionScanner.visit_Try | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | analyzer.py: | block_unreachable | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | analyzer.py: | normalized_function_shape | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | analyzer.py: | fragment_source_hash | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | analyzer.py: | fragment_context_fingerprint | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | analyzer.py: | _clone_rebound_source_hash | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | analyzer.py: | _build_fragment_reuse_index | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | analyzer.py: | _reuse_function_fragment | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | analyzer.py: | motif_signature | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | analyzer.py: | coarse_motif_signature | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | analyzer.py: | infer_structural_motifs | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | analyzer.py: | _preload_reused_graph | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | analyzer.py: | _garbage_collect_shared_nodes | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | analyzer.py: | analyze | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | cache.py: | scan_python_manifest | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | cache.py: | analyze_with_cache | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | cache.py: | review_fingerprint | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | cli.py: | main | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | dataflow.py: | StateAccessCollector.visit_Call | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | dataflow.py: | stmt_definitely_terminates | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | dataflow.py: | FunctionDataflowBuilder._merge_envs | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | dataflow.py: | FunctionDataflowBuilder.process_stmt | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | dataflow.py: | FunctionDataflowBuilder._build_exception_flow | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | dataflow.py: | FunctionDataflowBuilder.build | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | diff_report.py: | write_semantic_diff_markdown | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | diff_report.py: | write_semantic_diff_html | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | git_adapter.py: | archive_ref | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | git_adapter.py: | changed_files | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | git_adapter.py: | parse_github_event | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | impact.py: | build_impact_index | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | impact.py: | resolve_impact_target | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | impact.py: | analyze_impact | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | incremental.py: | _base_symbol_surface | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | incremental.py: | _target_symbol_surface | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | incremental.py: | assess_partial_recompute | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | incremental.py: | canonical_graph_payload | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | incremental.py: | build_invalidation_plan | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | pr_review.py: | _changed_function_seeds | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | pr_review.py: | _aggregate_impact | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | pr_review.py: | build_pr_review | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | pr_review.py: | review_markdown | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | pr_review.py: | annotation_commands | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | pr_review.py: | write_pr_review_html | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | product_ui.py: | build_project_summary | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | product_ui.py: | _finding_rows | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | product_ui.py: | write_project_html | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | product_ui.py: | build_review_summary | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | product_ui.py: | write_review_html | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | report.py: | write_json_outputs | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | report.py: | write_graphml | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | report.py: | _overview_graph | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | report.py: | _svg_graph | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | report.py: | write_html | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | report.py: | write_markdown_report | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | semantic_diff.py: | _node_key | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | semantic_diff.py: | _relation_key | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | semantic_diff.py: | _relation_public | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | semantic_diff.py: | _finding_key | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | semantic_diff.py: | _exception_signatures | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | semantic_diff.py: | _impact_breadth | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | semantic_diff.py: | _impact_changes | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | semantic_diff.py: | _rename_candidates | Many calls cross the resolved graph boundary. |
| info | hotspot | boundary_heavy | semantic_diff.py: | compare_graphs | Many calls cross the resolved graph boundary. |
| info | anomaly | duplicate_function_shape | : | Functions normalize to the same AST shape. | |
| info | anomaly | duplicate_function_shape | : | Functions normalize to the same AST shape. | |
| info | anomaly | duplicate_function_shape | : | Functions normalize to the same AST shape. | |
| info | anomaly | duplicate_function_shape | : | Functions normalize to the same AST shape. | |
| info | anomaly | duplicate_function_shape | : | Functions normalize to the same AST shape. | |
| info | anomaly | duplicate_function_shape | : | Functions normalize to the same AST shape. | |
| info | hotspot | high_call_fanout | analyzer.py: | infer_effect | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | analyzer.py: | node_text | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | analyzer.py: | FunctionScanner.visit_Try | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | analyzer.py: | block_unreachable | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | analyzer.py: | normalized_function_shape | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | analyzer.py: | fragment_source_hash | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | analyzer.py: | fragment_context_fingerprint | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | analyzer.py: | _clone_rebound_source_hash | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | analyzer.py: | _build_fragment_reuse_index | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | analyzer.py: | _reuse_function_fragment | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | analyzer.py: | motif_signature | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | analyzer.py: | coarse_motif_signature | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | analyzer.py: | infer_structural_motifs | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | analyzer.py: | _preload_reused_graph | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | analyzer.py: | _garbage_collect_shared_nodes | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | analyzer.py: | analyze | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | cache.py: | scan_python_manifest | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | cache.py: | analyze_with_cache | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | cache.py: | _strip_volatile | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | cache.py: | review_fingerprint | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | cli.py: | main | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | dataflow.py: | LoadNameCollector._visit_comp | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | dataflow.py: | StateAccessCollector.visit_Call | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | dataflow.py: | StateAccessCollector.visit_Subscript | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | dataflow.py: | StateAccessCollector.visit_AugAssign | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | dataflow.py: | stmt_definitely_terminates | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | dataflow.py: | FunctionDataflowBuilder.__init__ | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | dataflow.py: | FunctionDataflowBuilder._collect_state_accesses | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | dataflow.py: | FunctionDataflowBuilder._merge_envs | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | dataflow.py: | FunctionDataflowBuilder.process_stmt | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | dataflow.py: | FunctionDataflowBuilder._build_exception_flow | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | dataflow.py: | FunctionDataflowBuilder.build | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | diff_report.py: | write_semantic_diff_markdown | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | diff_report.py: | write_semantic_diff_html | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | git_adapter.py: | _git | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | git_adapter.py: | ensure_git_repo | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | git_adapter.py: | _safe_member_path | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | git_adapter.py: | archive_ref | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | git_adapter.py: | changed_files | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | git_adapter.py: | compare_metadata | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | git_adapter.py: | parse_github_event | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | impact.py: | build_impact_index | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | impact.py: | resolve_impact_target | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | impact.py: | analyze_impact | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | incremental.py: | _base_symbol_surface | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | incremental.py: | _target_symbol_surface | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | incremental.py: | assess_partial_recompute | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | incremental.py: | canonical_graph_payload | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | incremental.py: | graph_equivalence_report | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | incremental.py: | build_invalidation_plan | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | pr_review.py: | _changed_function_seeds | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | pr_review.py: | _aggregate_impact | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | pr_review.py: | build_pr_review | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | pr_review.py: | review_markdown | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | pr_review.py: | annotation_commands | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | pr_review.py: | write_pr_review_outputs | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | pr_review.py: | write_pr_review_html | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | product_ui.py: | build_project_summary | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | product_ui.py: | _finding_rows | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | product_ui.py: | write_project_html | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | product_ui.py: | build_review_summary | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | product_ui.py: | write_review_html | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | report.py: | write_json_outputs | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | report.py: | write_graphml | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | report.py: | _overview_graph | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | report.py: | _svg_graph | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | report.py: | write_html | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | report.py: | write_markdown_report | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | semantic_diff.py: | _node_key | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | semantic_diff.py: | _relation_key | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | semantic_diff.py: | _relation_public | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | semantic_diff.py: | _finding_key | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | semantic_diff.py: | _exception_signatures | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | semantic_diff.py: | _impact_breadth | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | semantic_diff.py: | _impact_changes | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | semantic_diff.py: | _rename_candidates | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | high_call_fanout | semantic_diff.py: | compare_graphs | High static call fan-out; review as an orchestration/hotspot node. |
| info | hotspot | multi_writer_state | : | State region has three or more static writers; review coupling and mutation ownership. | |
| info | anomaly | static_call_cycle | : | Resolved local calls form a cycle; may be intentional recursion. | |
| info | anomaly | static_call_cycle | : | Resolved local calls form a cycle; may be intentional recursion. | |
| info | anomaly | static_call_cycle | : | Resolved local calls form a cycle; may be intentional recursion. | |
| info | anomaly | static_call_cycle | : | Resolved local calls form a cycle; may be intentional recursion. | |
| info | anomaly | static_call_cycle | : | Resolved local calls form a cycle; may be intentional recursion. | |
| info | anomaly | static_call_cycle | : | Resolved local calls form a cycle; may be intentional recursion. | |
| info | anomaly | static_call_cycle | : | Resolved local calls form a cycle; may be intentional recursion. |
Deterministic motif candidates
| Kind | Path | Symbol | Confidence | Structural rule |
|---|---|---|---|---|
| boundary_orchestration | analyzer.py | FunctionScanner.visit_Try | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | analyzer.py | _build_fragment_reuse_index | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | analyzer.py | _clone_rebound_source_hash | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | analyzer.py | _garbage_collect_shared_nodes | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | analyzer.py | _preload_reused_graph | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | analyzer.py | _reuse_function_fragment | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | analyzer.py | analyze | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | analyzer.py | block_unreachable | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | analyzer.py | coarse_motif_signature | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | analyzer.py | fragment_context_fingerprint | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | analyzer.py | fragment_source_hash | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | analyzer.py | infer_effect | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | analyzer.py | infer_structural_motifs | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | analyzer.py | iter_python_files | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | analyzer.py | motif_signature | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | analyzer.py | node_text | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | analyzer.py | normalized_function_shape | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | analyzer.py | resolve_relative | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | analyzer.py | stable_id | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | cache.py | CacheStore.register_review | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | cache.py | _strip_volatile | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | cache.py | analyze_with_cache | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | cache.py | review_fingerprint | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | cache.py | scan_python_manifest | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | cli.py | main | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | dataflow.py | FunctionDataflowBuilder.__init__ | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | dataflow.py | FunctionDataflowBuilder._build_exception_flow | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | dataflow.py | FunctionDataflowBuilder._merge_envs | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | dataflow.py | FunctionDataflowBuilder.build | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | dataflow.py | FunctionDataflowBuilder.process_stmt | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | dataflow.py | LoadNameCollector._visit_comp | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | dataflow.py | LoadNameCollector.visit_Lambda | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | dataflow.py | StateAccessCollector.visit_AugAssign | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | dataflow.py | StateAccessCollector.visit_Call | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | dataflow.py | StateAccessCollector.visit_Subscript | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | dataflow.py | attr_chain | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | dataflow.py | exception_name | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | dataflow.py | handler_matches | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | dataflow.py | stable_id | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | dataflow.py | stmt_definitely_terminates | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | diff_report.py | write_semantic_diff_html | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | diff_report.py | write_semantic_diff_markdown | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | git_adapter.py | _git | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | git_adapter.py | _safe_member_path | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | git_adapter.py | archive_ref | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | git_adapter.py | changed_files | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | git_adapter.py | commit_metadata | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | git_adapter.py | ensure_git_repo | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | git_adapter.py | parse_github_event | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | impact.py | _bfs_paths | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | impact.py | _is_test_path | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | impact.py | analyze_impact | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | impact.py | build_impact_index | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | impact.py | resolve_impact_target | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | incremental.py | _base_symbol_surface | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | incremental.py | _changed_python_paths | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | incremental.py | _target_symbol_surface | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | incremental.py | assess_partial_recompute | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | incremental.py | build_invalidation_plan | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | incremental.py | canonical_graph_payload | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | pr_review.py | _aggregate_impact | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | pr_review.py | _changed_function_seeds | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | pr_review.py | _find_target | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | pr_review.py | annotation_commands | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | pr_review.py | build_pr_review | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | pr_review.py | review_markdown | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | pr_review.py | write_pr_review_html | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | pr_review.py | write_pr_review_outputs | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | product_ui.py | _finding_rows | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | product_ui.py | _project_status | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | product_ui.py | build_project_summary | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | product_ui.py | build_review_summary | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | product_ui.py | write_project_html | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | product_ui.py | write_review_html | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | report.py | _overview_graph | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | report.py | _svg_graph | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | report.py | write_graphml | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | report.py | write_html | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | report.py | write_json_outputs | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | report.py | write_markdown_report | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | semantic_diff.py | _exception_signatures | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | semantic_diff.py | _finding_key | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | semantic_diff.py | _impact_breadth | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | semantic_diff.py | _impact_changes | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | semantic_diff.py | _motif_key | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | semantic_diff.py | _node_key | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | semantic_diff.py | _relation_key | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | semantic_diff.py | _relation_public | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | semantic_diff.py | _rename_candidates | 0.72 | five or more unresolved/external calls |
| boundary_orchestration | semantic_diff.py | compare_graphs | 0.72 | five or more unresolved/external calls |
| orchestration_fanout | analyzer.py | analyze | 0.85 | five or more resolved local calls |
| orchestration_fanout | cache.py | analyze_with_cache | 0.85 | five or more resolved local calls |
| orchestration_fanout | cli.py | _write_analysis | 0.85 | five or more resolved local calls |
| orchestration_fanout | cli.py | main | 0.85 | five or more resolved local calls |
| orchestration_fanout | dataflow.py | FunctionDataflowBuilder._build_exception_flow | 0.85 | five or more resolved local calls |
| orchestration_fanout | dataflow.py | FunctionDataflowBuilder._collect_state_accesses | 0.85 | five or more resolved local calls |
| orchestration_fanout | dataflow.py | FunctionDataflowBuilder._record_use_name | 0.85 | five or more resolved local calls |
| orchestration_fanout | dataflow.py | FunctionDataflowBuilder.process_stmt | 0.85 | five or more resolved local calls |
| orchestration_fanout | dataflow.py | StateAccessCollector.visit_AugAssign | 0.85 | five or more resolved local calls |
| orchestration_fanout | dataflow.py | StateAccessCollector.visit_Subscript | 0.85 | five or more resolved local calls |
| orchestration_fanout | dataflow.py | stmt_definitely_terminates | 0.85 | five or more resolved local calls |
| orchestration_fanout | diff_report.py | write_semantic_diff_html | 0.85 | five or more resolved local calls |
| orchestration_fanout | git_adapter.py | compare_metadata | 0.85 | five or more resolved local calls |
| orchestration_fanout | impact.py | analyze_impact | 0.85 | five or more resolved local calls |
| orchestration_fanout | incremental.py | canonical_graph_payload | 0.85 | five or more resolved local calls |
| orchestration_fanout | pr_review.py | write_pr_review_html | 0.85 | five or more resolved local calls |
| orchestration_fanout | product_ui.py | _finding_rows | 0.85 | five or more resolved local calls |
| orchestration_fanout | product_ui.py | write_project_html | 0.85 | five or more resolved local calls |
| orchestration_fanout | product_ui.py | write_review_html | 0.85 | five or more resolved local calls |
| orchestration_fanout | report.py | _svg_graph | 0.85 | five or more resolved local calls |
| orchestration_fanout | report.py | write_html | 0.85 | five or more resolved local calls |
| orchestration_fanout | semantic_diff.py | _exception_signatures | 0.85 | five or more resolved local calls |
| orchestration_fanout | semantic_diff.py | _impact_changes | 0.85 | five or more resolved local calls |
| orchestration_fanout | semantic_diff.py | compare_graphs | 0.85 | five or more resolved local calls |
| read_modify_write | cache.py | CacheStore.__init__ | 0.86 | same function reads and writes the same state target |
| read_modify_write | dataflow.py | FunctionDataflowBuilder.__init__ | 0.86 | same function reads and writes the same state target |
| read_modify_write | dataflow.py | FunctionDataflowBuilder._collect_state_accesses | 0.86 | same function reads and writes the same state target |
| read_modify_write | dataflow.py | FunctionDataflowBuilder._define_target | 0.86 | same function reads and writes the same state target |
| read_modify_write | dataflow.py | FunctionDataflowBuilder._merge_envs | 0.86 | same function reads and writes the same state target |
| read_modify_write | dataflow.py | FunctionDataflowBuilder._new_value | 0.86 | same function reads and writes the same state target |
| read_modify_write | dataflow.py | FunctionDataflowBuilder._record_use_name | 0.86 | same function reads and writes the same state target |
| read_modify_write | dataflow.py | FunctionDataflowBuilder._undefined | 0.86 | same function reads and writes the same state target |
| read_modify_write | dataflow.py | FunctionDataflowBuilder.build | 0.86 | same function reads and writes the same state target |
| resource_scope | cache.py | CacheStore.load_graph | 0.92 | with/async-with establishes bounded resource scope |
| resource_scope | cli.py | main | 0.92 | with/async-with establishes bounded resource scope |
| resource_scope | git_adapter.py | archive_ref | 0.92 | with/async-with establishes bounded resource scope |
| retry_candidate | analyzer.py | analyze | 0.70 | loop plus exception handling is a retry-like structural candidate |
| retry_candidate | analyzer.py | iter_python_files | 0.70 | loop plus exception handling is a retry-like structural candidate |
| retry_candidate | analyzer.py | normalized_function_shape | 0.70 | loop plus exception handling is a retry-like structural candidate |
| retry_candidate | cache.py | _iter_python_candidates | 0.70 | loop plus exception handling is a retry-like structural candidate |
| retry_candidate | cache.py | scan_python_manifest | 0.70 | loop plus exception handling is a retry-like structural candidate |
| retry_candidate | cli.py | main | 0.70 | loop plus exception handling is a retry-like structural candidate |
| retry_candidate | dataflow.py | handler_matches | 0.70 | loop plus exception handling is a retry-like structural candidate |
| retry_candidate | impact.py | top_impact_targets | 0.70 | loop plus exception handling is a retry-like structural candidate |
| retry_candidate | incremental.py | _target_symbol_surface | 0.70 | loop plus exception handling is a retry-like structural candidate |
| retry_candidate | pr_review.py | _aggregate_impact | 0.70 | loop plus exception handling is a retry-like structural candidate |
| retry_candidate | semantic_diff.py | _impact_changes | 0.70 | loop plus exception handling is a retry-like structural candidate |
Name-independent structural signature clusters
| Motif ID | Members | Identity basis |
|---|---|---|
| motif_coarse_10d26391059d | 2 | name-independent coarse structural feature signature |
| motif_coarse_125fe4728a6b | 4 | name-independent coarse structural feature signature |
| motif_coarse_1d063c7b37b2 | 7 | name-independent coarse structural feature signature |
| motif_coarse_21f990ba2ff9 | 3 | name-independent coarse structural feature signature |
| motif_coarse_2a35739c27f5 | 3 | name-independent coarse structural feature signature |
| motif_coarse_3a2eb66bf0ac | 3 | name-independent coarse structural feature signature |
| motif_coarse_404687b09fc9 | 2 | name-independent coarse structural feature signature |
| motif_coarse_6498af11de89 | 6 | name-independent coarse structural feature signature |
| motif_coarse_662d65d73597 | 3 | name-independent coarse structural feature signature |
| motif_coarse_69581341d26f | 8 | name-independent coarse structural feature signature |
| motif_coarse_6b17282fe849 | 3 | name-independent coarse structural feature signature |
| motif_coarse_7a99543fed3f | 5 | name-independent coarse structural feature signature |
| motif_coarse_7bef0e8aaa95 | 3 | name-independent coarse structural feature signature |
| motif_coarse_7d036f941004 | 6 | name-independent coarse structural feature signature |
| motif_coarse_89f822006874 | 2 | name-independent coarse structural feature signature |
| motif_coarse_9f0831ec4b22 | 2 | name-independent coarse structural feature signature |
| motif_coarse_af2f0ae26158 | 2 | name-independent coarse structural feature signature |
| motif_coarse_b2feb91af8fa | 8 | name-independent coarse structural feature signature |
| motif_coarse_b42846908a33 | 2 | name-independent coarse structural feature signature |
| motif_coarse_b4a27ad8a6cb | 8 | name-independent coarse structural feature signature |
| motif_coarse_c03889665559 | 13 | name-independent coarse structural feature signature |
| motif_coarse_c10ceceefb4d | 5 | name-independent coarse structural feature signature |
| motif_coarse_c4a7b2976828 | 2 | name-independent coarse structural feature signature |
| motif_coarse_ce08f8f7d524 | 5 | name-independent coarse structural feature signature |
| motif_coarse_e3a6d82c57d0 | 15 | name-independent coarse structural feature signature |
| motif_coarse_ef5db5e5ba38 | 3 | name-independent coarse structural feature signature |
| motif_coarse_f373ee2a1d21 | 11 | name-independent coarse structural feature signature |
| motif_coarse_f4a86b4f0a93 | 5 | name-independent coarse structural feature signature |
| motif_coarse_fca123bd72d6 | 12 | name-independent coarse structural feature signature |
| motif_coarse_ff49519e01f1 | 10 | name-independent coarse structural feature signature |
Per-file SHA-256
| Path | Bytes | SHA-256 |
|---|---|---|
| __init__.py | 22 | 1fd3564596fb35b7… |
| analyzer.py | 50964 | 4df04e2eaea2f72a… |
| cache.py | 12245 | bb7f4ff6a3557f63… |
| cli.py | 12493 | fce9427a29a429f0… |
| dataflow.py | 39188 | 60b2e9a2d349647c… |
| diff_report.py | 11137 | 706bdf4002b79232… |
| git_adapter.py | 6707 | cc64d3adcf9b77ce… |
| impact.py | 20500 | 3221edce2184d0bd… |
| incremental.py | 12608 | c5d319aaebd5b833… |
| pr_review.py | 16963 | b9a4a702230a2c96… |
| product_ui.py | 31255 | 419c7f1401a5528f… |
| report.py | 31778 | 7bd6d522e41bb159… |
| semantic_diff.py | 22721 | acb3a4d2a81f84aa… |
Epistemic contract
observed
- Python AST definitions
- imports
- call syntax
- control syntax
- source spans
- local file hashes
- SSA-like local definitions/uses
- self/cls/explicit-global state accesses
- module-binding reads
- explicit raise/except syntax
- definition-time Python name aliases
strongly_inferred
- local call target resolution
- parameter-container state regions
- effect hints
- branch/loop phi merges
- explicit exception catch matching
- structural motif candidates
unresolved
- runtime dispatch
- reflection
- native extension behavior
- external library semantics
- precise heap points-to beyond definition-time alias
- dynamic exception behavior from calls
- concurrency semantics