13
Files
4620
Nodes
12665
Edges
446
Impact targets
1550
Data values
65
State regions
0
Defects
132
Motifs
MVP pipeline
Repository → CISG → Data/State Closure → Impact Engine → review scope
v0.8 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": 4620,
"edges": 12665,
"node_types": {
"file": 13,
"function": 119,
"class": 9,
"method": 78,
"boundary_module": 22,
"control": 548,
"data_value": 1550,
"state_region": 65,
"module_binding": 19,
"data_sink": 222,
"boundary_call": 452,
"data_phi": 710,
"data_use": 441,
"data_undefined": 335,
"exception_handler": 19,
"effect": 2,
"exception_event": 9,
"boundary_exception": 7
},
"edge_types": {
"contains": 206,
"imports": 94,
"controls": 548,
"defines": 2260,
"reads_state": 210,
"reads_binding": 39,
"flows_to": 2856,
"guards": 649,
"contains_data": 668,
"calls": 3079,
"returns_value": 431,
"phi_input": 1420,
"contains_exception_handler": 19,
"writes_state": 66,
"aliases_at_definition": 47,
"effect": 47,
"exception_value": 8,
"raises": 9,
"exception_flow": 9
},
"resolved_local_calls": 599,
"boundary_calls": 2480,
"findings_by_category": {
"anomaly": 13,
"hotspot": 132
},
"findings_by_severity": {
"info": 145
},
"motif_instances": 132,
"motif_clusters": 30,
"data_values": 1550,
"phi_nodes": 710,
"data_edges": 7671,
"alias_edges": 47,
"state_regions": 65,
"state_reads": 210,
"state_writes": 66,
"module_binding_reads": 39,
"exception_handlers": 19,
"explicit_raises": 9,
"unresolved_local_uses": 0,
"warnings": 0
}Highest review breadth
| Kind | Target | Review breadth | Path |
|---|---|---|---|
| function | 577 | cli.py | |
| function | 223 | impact.py | |
| function | 222 | cache.py | |
| function | 215 | impact.py | |
| function | 195 | cli.py | |
| function | 192 | semantic_diff.py | |
| function | 185 | impact.py | |
| function | 174 | product_ui.py | |
| function | 173 | report.py | |
| function | 172 | analyzer.py | |
| function | 164 | semantic_diff.py | |
| function | 159 | pr_review.py | |
| function | 154 | impact.py | |
| function | 149 | product_ui.py | |
| function | 148 | report.py | |
| function | 148 | pr_review.py | |
| function | 139 | report.py | |
| function | 139 | product_ui.py | |
| function | 125 | product_ui.py | |
| function | 119 | 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 218 of 219 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 | feature#0 | payload#1 | analyzer.py:241 | observed |
| flows_to | feature#0 | payload#1 | analyzer.py:242 | observed |
| flows_to | feature#0 | payload#1 | analyzer.py:243 | observed |
| flows_to | feature#0 | payload#1 | analyzer.py:244 | observed |
| flows_to | feature#0 | payload#1 | analyzer.py:245 | observed |
| flows_to | feature#0 | payload#1 | analyzer.py:246 | observed |
| flows_to | payload#1 | raw#1 | analyzer.py:248 | observed |
| returns_value | raw#1 | return@249 | analyzer.py:249 | observed |
| flows_to | feature#0 | ctr#1 | analyzer.py:254 | observed |
| flows_to | ctr#1 | payload#1 | analyzer.py:256 | observed |
| flows_to | ctr#1 | payload#1 | analyzer.py:257 | observed |
| flows_to | ctr#1 | payload#1 | analyzer.py:258 | observed |
| flows_to | ctr#1 | payload#1 | analyzer.py:259 | observed |
| flows_to | bucket#1 | payload#1 | analyzer.py:260 | observed |
| flows_to | feature#0 | payload#1 | analyzer.py:260 | observed |
| flows_to | bucket#1 | payload#1 | analyzer.py:261 | observed |
| flows_to | feature#0 | payload#1 | analyzer.py:261 | observed |
| flows_to | feature#0 | payload#1 | analyzer.py:262 | observed |
| flows_to | feature#0 | payload#1 | analyzer.py:263 | observed |
| flows_to | payload#1 | raw#1 | analyzer.py:265 | observed |
| returns_value | raw#1 | return@266 | analyzer.py:266 | observed |
| flows_to | feature#0 | controls#1 | analyzer.py:270 | observed |
| flows_to | feature#0 | effects#1 | analyzer.py:271 | observed |
| guards | controls#1 | branch | analyzer.py:275 | observed |
| flows_to | add#1 | expr@276 | analyzer.py:276 | observed |
| flows_to | feature#0 | shared_state#1 | analyzer.py:277 | observed |
| guards | shared_state#1 | branch | analyzer.py:278 | observed |
| flows_to | add#1 | expr@279 | analyzer.py:279 | observed |
| guards | controls#1 | branch | analyzer.py:280 | observed |
| flows_to | add#1 | expr@281 | analyzer.py:281 | observed |
| guards | feature#0 | branch | analyzer.py:282 | observed |
| flows_to | add#1 | expr@283 | analyzer.py:283 | observed |
| guards | feature#0 | branch | analyzer.py:284 | observed |
| flows_to | add#1 | expr@285 | analyzer.py:285 | observed |
| guards | effects#1 | branch | analyzer.py:286 | observed |
| guards | feature#0 | branch | analyzer.py:286 | observed |
| flows_to | add#1 | expr@287 | analyzer.py:287 | observed |
| guards | effects#1 | branch | analyzer.py:288 | observed |
| guards | controls#1 | branch | analyzer.py:288 | observed |
| flows_to | add#1 | expr@289 | analyzer.py:289 | observed |
| returns_value | motifs#1 | return@290 | analyzer.py:290 | observed |
| flows_to | edge#0 | ev#1 | analyzer.py:305 | observed |
| guards | ev#1 | branch | analyzer.py:306 | observed |
| returns_value | ev#1 | return@307 | analyzer.py:307 | observed |
| guards | base_graph#0 | for_loop | analyzer.py:319 | observed |
| flows_to | base_graph#0 | node#1 | analyzer.py:319 | observed |
| flows_to | node#1 | path#1 | analyzer.py:320 | observed |
| guards | path#1 | branch | analyzer.py:321 | observed |
| guards | dirty_paths#0 | branch | analyzer.py:321 | observed |
| phi_input | node#1 | node#2 | analyzer.py:319 | strongly_inferred |
| phi_input | node:undefined | node#2 | analyzer.py:319 | unresolved |
| phi_input | path#1 | path#2 | analyzer.py:319 | strongly_inferred |
| phi_input | path:undefined | path#2 | analyzer.py:319 | unresolved |
| flows_to | base_graph#0 | edges#1 | analyzer.py:325 | observed |
| flows_to | dirty_paths#0 | edges#1 | analyzer.py:326 | observed |
| flows_to | base_graph#0 | findings#1 | analyzer.py:329 | observed |
| flows_to | dirty_paths#0 | findings#1 | analyzer.py:331 | observed |
| flows_to | base_graph#0 | motifs#1 | analyzer.py:333 | observed |
| flows_to | dirty_paths#0 | motifs#1 | analyzer.py:333 | observed |
| returns_value | nodes#1 | return@334 | analyzer.py:334 | observed |
| returns_value | edges#1 | return@334 | analyzer.py:334 | observed |
| returns_value | findings#1 | return@334 | analyzer.py:334 | observed |
| returns_value | motifs#1 | return@334 | analyzer.py:334 | observed |
| flows_to | edges#0 | referenced#1 | analyzer.py:338 | observed |
| guards | nodes#0 | for_loop | analyzer.py:342 | observed |
| flows_to | nodes#0 | nid#1 | analyzer.py:342 | observed |
| flows_to | nodes#0 | node#1 | analyzer.py:342 | observed |
| guards | node#1 | branch | analyzer.py:343 | observed |
| guards | removable#1 | branch | analyzer.py:343 | observed |
| guards | nid#1 | branch | analyzer.py:343 | observed |
| guards | referenced#1 | branch | analyzer.py:343 | observed |
| flows_to | nodes#0 | expr@344 | analyzer.py:344 | observed |
| flows_to | nid#1 | expr@344 | analyzer.py:344 | observed |
| phi_input | nid#1 | nid#2 | analyzer.py:342 | strongly_inferred |
| phi_input | nid:undefined | nid#2 | analyzer.py:342 | unresolved |
| phi_input | node#1 | node#2 | analyzer.py:342 | strongly_inferred |
| phi_input | node:undefined | node#2 | analyzer.py:342 | unresolved |
| flows_to | root#0 | root#1 | analyzer.py:349 | observed |
| flows_to | dirty_paths#0 | dirty_set#1 | analyzer.py:350 | observed |
| flows_to | reuse_graph#0 | reuse_mode#1 | analyzer.py:351 | observed |
| flows_to | dirty_set#1 | reuse_mode#1 | analyzer.py:351 | observed |
| guards | reuse_mode#1 | branch | analyzer.py:352 | observed |
| flows_to | reuse_graph#0 | nodes#1 | analyzer.py:353 | observed |
| flows_to | dirty_set#1 | nodes#1 | analyzer.py:353 | observed |
| flows_to | reuse_graph#0 | edges#1 | analyzer.py:353 | observed |
| flows_to | dirty_set#1 | edges#1 | analyzer.py:353 | observed |
| flows_to | reuse_graph#0 | findings#1 | analyzer.py:353 | observed |
| flows_to | dirty_set#1 | findings#1 | analyzer.py:353 | observed |
| flows_to | reuse_graph#0 | motifs#1 | analyzer.py:353 | observed |
| flows_to | dirty_set#1 | motifs#1 | analyzer.py:353 | observed |
| phi_input | edges#1 | edges#3 | analyzer.py:352 | strongly_inferred |
| phi_input | edges#2 | edges#3 | analyzer.py:352 | strongly_inferred |
| phi_input | findings#2 | findings#3 | analyzer.py:352 | strongly_inferred |
| phi_input | findings#1 | findings#3 | analyzer.py:352 | strongly_inferred |
| phi_input | motifs#1 | motifs#3 | analyzer.py:352 | strongly_inferred |
| phi_input | motifs#2 | motifs#3 | analyzer.py:352 | strongly_inferred |
| phi_input | nodes#1 | nodes#3 | analyzer.py:352 | strongly_inferred |
| phi_input | nodes#2 | nodes#3 | analyzer.py:352 | strongly_inferred |
| flows_to | reuse_mode#1 | warnings#1 | analyzer.py:360 | observed |
| flows_to | reuse_graph#0 | warnings#1 | analyzer.py:360 | observed |
| flows_to | reuse_mode#1 | base_source_files#1 | analyzer.py:368 | observed |
| flows_to | reuse_graph#0 | base_source_files#1 | analyzer.py:368 | observed |
| guards | reuse_mode#1 | branch | analyzer.py:371 | observed |
| guards | nodes#3 | for_loop | analyzer.py:372 | observed |
| flows_to | nodes#3 | nid#1 | analyzer.py:372 | observed |
| flows_to | nodes#3 | n#1 | analyzer.py:372 | observed |
| guards | n#1 | branch | analyzer.py:373 | observed |
| flows_to | simple_defs#1 | expr@375 | analyzer.py:375 | observed |
| flows_to | n#1 | expr@375 | analyzer.py:375 | observed |
| flows_to | nid#1 | expr@375 | analyzer.py:375 | observed |
| phi_input | n#1 | n#2 | analyzer.py:372 | strongly_inferred |
| phi_input | n:undefined | n#2 | analyzer.py:372 | unresolved |
| phi_input | nid#1 | nid#2 | analyzer.py:372 | strongly_inferred |
| phi_input | nid:undefined | nid#2 | analyzer.py:372 | unresolved |
| phi_input | n#2 | n#3 | analyzer.py:371 | strongly_inferred |
| phi_input | n:undefined | n#3 | analyzer.py:371 | unresolved |
| phi_input | nid#2 | nid#3 | analyzer.py:371 | strongly_inferred |
| phi_input | nid:undefined | nid#3 | analyzer.py:371 | unresolved |
| guards | root#1 | for_loop | analyzer.py:377 | observed |
| guards | max_files#0 | for_loop | analyzer.py:377 | observed |
| guards | max_bytes#0 | for_loop | analyzer.py:377 | observed |
| flows_to | root#1 | path#1 | analyzer.py:377 | observed |
| flows_to | max_files#0 | path#1 | analyzer.py:377 | observed |
| flows_to | max_bytes#0 | path#1 | analyzer.py:377 | observed |
| flows_to | root#1 | skip_reason#1 | analyzer.py:377 | observed |
| flows_to | max_files#0 | skip_reason#1 | analyzer.py:377 | observed |
| flows_to | max_bytes#0 | skip_reason#1 | analyzer.py:377 | observed |
| flows_to | path#1 | rel#1 | analyzer.py:378 | observed |
| flows_to | root#1 | rel#1 | analyzer.py:378 | observed |
| guards | skip_reason#1 | branch | analyzer.py:379 | observed |
| guards | reuse_mode#1 | branch | analyzer.py:380 | observed |
| guards | rel#1 | branch | analyzer.py:380 | observed |
| guards | dirty_set#1 | branch | analyzer.py:380 | observed |
| flows_to | warnings#1 | expr@381 | analyzer.py:381 | observed |
| flows_to | rel#1 | expr@381 | analyzer.py:381 | observed |
| flows_to | skip_reason#1 | expr@381 | analyzer.py:381 | observed |
| flows_to | path#1 | text#1 | analyzer.py:384 | observed |
| guards | reuse_mode#1 | branch | analyzer.py:386 | observed |
| guards | rel#1 | branch | analyzer.py:386 | observed |
| guards | dirty_set#1 | branch | analyzer.py:386 | observed |
| flows_to | warnings#1 | expr@387 | analyzer.py:387 | observed |
| flows_to | rel#1 | expr@387 | analyzer.py:387 | observed |
| flows_to | text#1 | h#1 | analyzer.py:389 | observed |
| flows_to | source_integrity#1 | expr@390 | analyzer.py:390 | observed |
| flows_to | rel#1 | expr@390 | analyzer.py:390 | observed |
| flows_to | h#1 | expr@390 | analyzer.py:390 | observed |
| flows_to | text#1 | expr@390 | analyzer.py:390 | observed |
| flows_to | root#1 | mod#1 | analyzer.py:391 | observed |
| flows_to | path#1 | mod#1 | analyzer.py:391 | observed |
| guards | mod#1 | branch | analyzer.py:392 | observed |
| flows_to | path#1 | mod#2 | analyzer.py:393 | observed |
| phi_input | mod#2 | mod#3 | analyzer.py:392 | strongly_inferred |
| phi_input | mod#1 | mod#3 | analyzer.py:392 | strongly_inferred |
| guards | reuse_mode#1 | branch | analyzer.py:398 | observed |
| guards | rel#1 | branch | analyzer.py:398 | observed |
| guards | dirty_set#1 | branch | analyzer.py:398 | observed |
| guards | rel#1 | branch | analyzer.py:399 | observed |
| guards | base_source_files#1 | branch | analyzer.py:399 | observed |
| guards | nodes#3 | for_loop | analyzer.py:401 | observed |
| flows_to | nodes#3 | n#4 | analyzer.py:401 | observed |
| guards | n#4 | branch | analyzer.py:402 | observed |
| guards | rel#1 | branch | analyzer.py:402 | observed |
| flows_to | n#4 | ev#1 | analyzer.py:403 | observed |
| flows_to | shapes#1 | expr@404 | analyzer.py:404 | observed |
| flows_to | n#4 | expr@404 | analyzer.py:404 | observed |
| flows_to | rel#1 | expr@404 | analyzer.py:404 | observed |
| flows_to | ev#1 | expr@404 | analyzer.py:404 | observed |
| phi_input | ev#1 | ev#2 | analyzer.py:402 | strongly_inferred |
| phi_input | ev:undefined | ev#2 | analyzer.py:402 | unresolved |
| phi_input | ev#2 | ev#3 | analyzer.py:401 | strongly_inferred |
| phi_input | ev:undefined | ev#3 | analyzer.py:401 | unresolved |
| phi_input | n#4 | n#5 | analyzer.py:401 | strongly_inferred |
| phi_input | n#3 | n#5 | analyzer.py:401 | strongly_inferred |
| phi_input | ev#3 | ev#4 | analyzer.py:399 | strongly_inferred |
| phi_input | ev:undefined | ev#4 | analyzer.py:399 | unresolved |
| phi_input | n#5 | n#6 | analyzer.py:399 | strongly_inferred |
| phi_input | n#3 | n#6 | analyzer.py:399 | strongly_inferred |
| flows_to | text#1 | tree#1 | analyzer.py:408 | observed |
| flows_to | rel#1 | tree#1 | analyzer.py:408 | observed |
| flows_to | findings#3 | expr@410 | analyzer.py:410 | observed |
| flows_to | rel#1 | expr@410 | analyzer.py:410 | observed |
| flows_to | e#1 | expr@410 | analyzer.py:411 | observed |
| guards | tree#1 | for_loop | analyzer.py:414 | observed |
| flows_to | tree#1 | top#1 | analyzer.py:414 | observed |
| guards | top#1 | branch | analyzer.py:415 | observed |
| flows_to | top#1 | targets#1 | analyzer.py:416 | observed |
| guards | targets#1 | for_loop | analyzer.py:417 | observed |
| flows_to | targets#1 | target#1 | analyzer.py:417 | observed |
| aliases_at_definition | targets#1 | target#1 | analyzer.py:417 | observed |
| guards | target#1 | branch | analyzer.py:418 | observed |
| flows_to | module_globals#1 | expr@419 | analyzer.py:419 | observed |
| flows_to | target#1 | expr@419 | analyzer.py:419 | observed |
| guards | target#1 | branch | analyzer.py:420 | observed |
| guards | target#1 | for_loop | analyzer.py:421 | observed |
| flows_to | target#1 | elt#1 | analyzer.py:421 | observed |
| guards | elt#1 | branch | analyzer.py:422 | observed |
| flows_to | module_globals#1 | expr@423 | analyzer.py:423 | observed |
| flows_to | elt#1 | expr@423 | analyzer.py:423 | observed |
| phi_input | elt#1 | elt#2 | analyzer.py:421 | strongly_inferred |
| phi_input | elt:undefined | elt#2 | analyzer.py:421 | unresolved |
| phi_input | elt#2 | elt#3 | analyzer.py:420 | strongly_inferred |
| phi_input | elt:undefined | elt#3 | analyzer.py:420 | unresolved |
| phi_input | elt#3 | elt#4 | analyzer.py:418 | strongly_inferred |
| phi_input | elt:undefined | elt#4 | analyzer.py:418 | unresolved |
| phi_input | elt#4 | elt#5 | analyzer.py:417 | strongly_inferred |
| phi_input | elt:undefined | elt#5 | analyzer.py:417 | unresolved |
| phi_input | target#1 | target#2 | analyzer.py:417 | strongly_inferred |
| phi_input | target:undefined | target#2 | analyzer.py:417 | unresolved |
| phi_input | elt#5 | elt#6 | analyzer.py:415 | strongly_inferred |
| phi_input | elt:undefined | elt#6 | analyzer.py:415 | unresolved |
| phi_input | target#2 | target#3 | analyzer.py:415 | strongly_inferred |
| phi_input | target:undefined | target#3 | analyzer.py:415 | unresolved |
| phi_input | targets#1 | targets#2 | analyzer.py:415 | strongly_inferred |
| phi_input | targets:undefined | targets#2 | analyzer.py:415 | unresolved |
| phi_input | elt#6 | elt#7 | analyzer.py:414 | strongly_inferred |
| phi_input | elt:undefined | elt#7 | analyzer.py:414 | unresolved |
| phi_input | target#3 | target#4 | analyzer.py:414 | strongly_inferred |
| phi_input | target:undefined | target#4 | analyzer.py:414 | unresolved |
| phi_input | targets#2 | targets#3 | analyzer.py:414 | strongly_inferred |
| phi_input | targets:undefined | targets#3 | analyzer.py:414 | unresolved |
| phi_input | top#1 | top#2 | analyzer.py:414 | strongly_inferred |
| phi_input | top:undefined | top#2 | analyzer.py:414 | unresolved |
| flows_to | rel#1 | fid#1 | analyzer.py:425 | observed |
| guards | tree#1 | for_loop | analyzer.py:431 | observed |
| flows_to | tree#1 | n#7 | analyzer.py:431 | observed |
| guards | n#7 | branch | analyzer.py:432 | observed |
| guards | n#7 | for_loop | analyzer.py:433 | observed |
| flows_to | n#7 | alias#1 | analyzer.py:433 | observed |
| phi_input | alias#1 | alias#2 | analyzer.py:433 | strongly_inferred |
| phi_input | alias:undefined | alias#2 | analyzer.py:433 | unresolved |
| guards | n#7 | branch | analyzer.py:435 | observed |
| flows_to | mod#3 | target_mod#1 | analyzer.py:436 | observed |
| flows_to | n#7 | target_mod#1 | analyzer.py:436 | observed |
| guards | n#7 | for_loop | analyzer.py:437 | observed |
| flows_to | n#7 | alias#3 | analyzer.py:437 | observed |
| phi_input | alias#3 | alias#4 | analyzer.py:437 | strongly_inferred |
| phi_input | alias:undefined | alias#4 | analyzer.py:437 | unresolved |
| phi_input | alias#4 | alias#5 | analyzer.py:435 | strongly_inferred |
| phi_input | alias:undefined | alias#5 | analyzer.py:435 | unresolved |
| phi_input | target_mod#1 | target_mod#2 | analyzer.py:435 | strongly_inferred |
| phi_input | target_mod:undefined | target_mod#2 | analyzer.py:435 | unresolved |
| phi_input | alias#2 | alias#6 | analyzer.py:432 | strongly_inferred |
| phi_input | alias#5 | alias#6 | analyzer.py:432 | strongly_inferred |
| phi_input | target_mod#2 | target_mod#3 | analyzer.py:432 | strongly_inferred |
| phi_input | target_mod:undefined | target_mod#3 | analyzer.py:432 | unresolved |
| phi_input | alias#6 | alias#7 | analyzer.py:431 | strongly_inferred |
| phi_input | alias:undefined | alias#7 | analyzer.py:431 | unresolved |
| phi_input | n#3 | n#8 | analyzer.py:431 | strongly_inferred |
| phi_input | n#7 | n#8 | analyzer.py:431 | strongly_inferred |
| phi_input | target_mod#3 | target_mod#4 | analyzer.py:431 | strongly_inferred |
| phi_input | target_mod:undefined | target_mod#4 | analyzer.py:431 | unresolved |
| guards | tree#1 | for_loop | analyzer.py:441 | observed |
| flows_to | tree#1 | n#9 | analyzer.py:441 | observed |
| guards | n#9 | branch | analyzer.py:442 | observed |
| flows_to | rel#1 | sid#1 | analyzer.py:443 | observed |
| flows_to | n#9 | sid#1 | analyzer.py:443 | observed |
| flows_to | sid#1 | _fresh#1 | analyzer.py:444 | observed |
| flows_to | n#9 | _fresh#1 | analyzer.py:444 | observed |
| flows_to | rel#1 | _fresh#1 | analyzer.py:444 | observed |
| flows_to | mod#3 | _fresh#1 | analyzer.py:444 | observed |
| flows_to | n#9 | _fresh#1 | analyzer.py:445 | observed |
| flows_to | rel#1 | _fresh#1 | analyzer.py:446 | observed |
| flows_to | n#9 | _fresh#1 | analyzer.py:446 | observed |
| flows_to | h#1 | _fresh#1 | analyzer.py:446 | observed |
| guards | reuse_mode#1 | branch | analyzer.py:447 | observed |
| guards | rel#1 | branch | analyzer.py:447 | observed |
| guards | dirty_set#1 | branch | analyzer.py:447 | observed |
| guards | sid#1 | branch | analyzer.py:447 | observed |
| guards | nodes#3 | branch | analyzer.py:447 | observed |
| flows_to | nodes#3 | expr@448 | analyzer.py:448 | observed |
| flows_to | sid#1 | expr@448 | analyzer.py:448 | observed |
| flows_to | _fresh#1 | expr@448 | analyzer.py:448 | observed |
| flows_to | simple_defs#1 | expr@451 | analyzer.py:451 | observed |
| flows_to | n#9 | expr@451 | analyzer.py:451 | observed |
| flows_to | sid#1 | expr@451 | analyzer.py:451 | observed |
| flows_to | edges#3 | expr@452 | analyzer.py:452 | observed |
| flows_to | fid#1 | expr@452 | analyzer.py:452 | observed |
| flows_to | sid#1 | expr@452 | analyzer.py:452 | observed |
| flows_to | rel#1 | expr@452 | analyzer.py:454 | observed |
| flows_to | n#9 | expr@452 | analyzer.py:454 | observed |
| flows_to | h#1 | expr@452 | analyzer.py:454 | observed |
| flows_to | n#9 | shape_sig#1 | analyzer.py:455 | observed |
| flows_to | shapes#1 | expr@457 | analyzer.py:457 | observed |
| flows_to | shape_sig#1 | expr@457 | analyzer.py:457 | observed |
| flows_to | rel#1 | expr@457 | analyzer.py:457 | observed |
| flows_to | n#9 | expr@457 | analyzer.py:457 | observed |
| flows_to | functions#1 | expr@458 | analyzer.py:458 | observed |
| flows_to | sid#1 | expr@458 | analyzer.py:458 | observed |
| flows_to | n#9 | expr@458 | analyzer.py:458 | observed |
| flows_to | rel#1 | expr@458 | analyzer.py:458 | observed |
| flows_to | mod#3 | expr@458 | analyzer.py:458 | observed |
| guards | n#9 | branch | analyzer.py:459 | observed |
| flows_to | rel#1 | cid#1 | analyzer.py:460 | observed |
| flows_to | n#9 | cid#1 | analyzer.py:460 | observed |
| flows_to | simple_defs#1 | expr@464 | analyzer.py:464 | observed |
| flows_to | n#9 | expr@464 | analyzer.py:464 | observed |
| flows_to | cid#1 | expr@464 | analyzer.py:464 | observed |
| flows_to | edges#3 | expr@465 | analyzer.py:465 | observed |
| flows_to | fid#1 | expr@465 | analyzer.py:465 | observed |
| flows_to | cid#1 | expr@465 | analyzer.py:465 | observed |
| flows_to | rel#1 | expr@465 | analyzer.py:467 | observed |
| flows_to | n#9 | expr@465 | analyzer.py:467 | observed |
| flows_to | h#1 | expr@465 | analyzer.py:467 | observed |
| guards | n#9 | for_loop | analyzer.py:468 | observed |
| flows_to | n#9 | item#1 | analyzer.py:468 | observed |
| guards | item#1 | branch | analyzer.py:469 | observed |
| flows_to | n#9 | qname#1 | analyzer.py:470 | observed |
| flows_to | item#1 | qname#1 | analyzer.py:470 | observed |
| flows_to | rel#1 | mid#1 | analyzer.py:471 | observed |
| flows_to | qname#1 | mid#1 | analyzer.py:471 | observed |
| flows_to | mid#1 | _fresh#2 | analyzer.py:472 | observed |
| flows_to | qname#1 | _fresh#2 | analyzer.py:472 | observed |
| flows_to | rel#1 | _fresh#2 | analyzer.py:472 | observed |
| flows_to | mod#3 | _fresh#2 | analyzer.py:472 | observed |
| flows_to | qname#1 | _fresh#2 | analyzer.py:473 | observed |
| flows_to | item#1 | _fresh#2 | analyzer.py:473 | observed |
| flows_to | rel#1 | _fresh#2 | analyzer.py:474 | observed |
| flows_to | item#1 | _fresh#2 | analyzer.py:474 | observed |
| flows_to | h#1 | _fresh#2 | analyzer.py:474 | observed |
| guards | reuse_mode#1 | branch | analyzer.py:475 | observed |
| guards | rel#1 | branch | analyzer.py:475 | observed |
| guards | dirty_set#1 | branch | analyzer.py:475 | observed |
| guards | mid#1 | branch | analyzer.py:475 | observed |
| guards | nodes#3 | branch | analyzer.py:475 | observed |
| flows_to | nodes#3 | expr@476 | analyzer.py:476 | observed |
| flows_to | mid#1 | expr@476 | analyzer.py:476 | observed |
| flows_to | _fresh#2 | expr@476 | analyzer.py:476 | observed |
| flows_to | simple_defs#1 | expr@479 | analyzer.py:479 | observed |
| flows_to | item#1 | expr@479 | analyzer.py:479 | observed |
| flows_to | mid#1 | expr@479 | analyzer.py:479 | observed |
| flows_to | edges#3 | expr@480 | analyzer.py:480 | observed |
| flows_to | cid#1 | expr@480 | analyzer.py:480 | observed |
| flows_to | mid#1 | expr@480 | analyzer.py:480 | observed |
| flows_to | rel#1 | expr@480 | analyzer.py:482 | observed |
| flows_to | item#1 | expr@480 | analyzer.py:482 | observed |
| flows_to | h#1 | expr@480 | analyzer.py:482 | observed |
| flows_to | item#1 | shape_sig#2 | analyzer.py:483 | observed |
| flows_to | shapes#1 | expr@485 | analyzer.py:485 | observed |
| flows_to | shape_sig#2 | expr@485 | analyzer.py:485 | observed |
| flows_to | rel#1 | expr@485 | analyzer.py:485 | observed |
| flows_to | qname#1 | expr@485 | analyzer.py:485 | observed |
| flows_to | item#1 | expr@485 | analyzer.py:485 | observed |
| flows_to | functions#1 | expr@486 | analyzer.py:486 | observed |
| flows_to | mid#1 | expr@486 | analyzer.py:486 | observed |
| flows_to | item#1 | expr@486 | analyzer.py:486 | observed |
| flows_to | qname#1 | expr@486 | analyzer.py:486 | observed |
| flows_to | n#9 | expr@486 | analyzer.py:486 | observed |
| flows_to | rel#1 | expr@486 | analyzer.py:486 | observed |
| flows_to | mod#3 | expr@486 | analyzer.py:486 | observed |
| phi_input | _fresh#2 | _fresh#3 | analyzer.py:469 | strongly_inferred |
| phi_input | _fresh:undefined | _fresh#3 | analyzer.py:469 | unresolved |
| phi_input | mid#1 | mid#2 | analyzer.py:469 | strongly_inferred |
| phi_input | mid:undefined | mid#2 | analyzer.py:469 | unresolved |
| phi_input | qname#1 | qname#2 | analyzer.py:469 | strongly_inferred |
| phi_input | qname:undefined | qname#2 | analyzer.py:469 | unresolved |
| phi_input | shape_sig#2 | shape_sig#3 | analyzer.py:469 | strongly_inferred |
| phi_input | shape_sig:undefined | shape_sig#3 | analyzer.py:469 | unresolved |
| phi_input | _fresh#3 | _fresh#4 | analyzer.py:468 | strongly_inferred |
| phi_input | _fresh:undefined | _fresh#4 | analyzer.py:468 | unresolved |
| phi_input | item#1 | item#2 | analyzer.py:468 | strongly_inferred |
| phi_input | item:undefined | item#2 | analyzer.py:468 | unresolved |
| phi_input | mid#2 | mid#3 | analyzer.py:468 | strongly_inferred |
| phi_input | mid:undefined | mid#3 | analyzer.py:468 | unresolved |
| phi_input | qname#2 | qname#3 | analyzer.py:468 | strongly_inferred |
| phi_input | qname:undefined | qname#3 | analyzer.py:468 | unresolved |
| phi_input | shape_sig#3 | shape_sig#4 | analyzer.py:468 | strongly_inferred |
| phi_input | shape_sig:undefined | shape_sig#4 | analyzer.py:468 | unresolved |
| phi_input | _fresh#4 | _fresh#5 | analyzer.py:459 | strongly_inferred |
| phi_input | _fresh:undefined | _fresh#5 | analyzer.py:459 | unresolved |
| phi_input | cid#1 | cid#2 | analyzer.py:459 | strongly_inferred |
| phi_input | cid:undefined | cid#2 | analyzer.py:459 | unresolved |
| phi_input | item#2 | item#3 | analyzer.py:459 | strongly_inferred |
| phi_input | item:undefined | item#3 | analyzer.py:459 | unresolved |
| phi_input | mid#3 | mid#4 | analyzer.py:459 | strongly_inferred |
| phi_input | mid:undefined | mid#4 | analyzer.py:459 | unresolved |
| phi_input | qname#3 | qname#4 | analyzer.py:459 | strongly_inferred |
| phi_input | qname:undefined | qname#4 | analyzer.py:459 | unresolved |
| phi_input | shape_sig#4 | shape_sig#5 | analyzer.py:459 | strongly_inferred |
| phi_input | shape_sig:undefined | shape_sig#5 | analyzer.py:459 | unresolved |
| phi_input | _fresh#5 | _fresh#6 | analyzer.py:442 | strongly_inferred |
| phi_input | _fresh#1 | _fresh#6 | analyzer.py:442 | strongly_inferred |
| phi_input | cid#2 | cid#3 | analyzer.py:442 | strongly_inferred |
| phi_input | cid:undefined | cid#3 | analyzer.py:442 | unresolved |
| phi_input | item#3 | item#4 | analyzer.py:442 | strongly_inferred |
| phi_input | item:undefined | item#4 | analyzer.py:442 | unresolved |
| phi_input | mid#4 | mid#5 | analyzer.py:442 | strongly_inferred |
| phi_input | mid:undefined | mid#5 | analyzer.py:442 | unresolved |
| phi_input | qname#4 | qname#5 | analyzer.py:442 | strongly_inferred |
| phi_input | qname:undefined | qname#5 | analyzer.py:442 | unresolved |
| phi_input | shape_sig#1 | shape_sig#6 | analyzer.py:442 | strongly_inferred |
| phi_input | shape_sig#5 | shape_sig#6 | analyzer.py:442 | strongly_inferred |
| phi_input | sid#1 | sid#2 | analyzer.py:442 | strongly_inferred |
| phi_input | sid:undefined | sid#2 | analyzer.py:442 | unresolved |
| phi_input | _fresh#6 | _fresh#7 | analyzer.py:441 | strongly_inferred |
| phi_input | _fresh:undefined | _fresh#7 | analyzer.py:441 | unresolved |
| phi_input | cid#3 | cid#4 | analyzer.py:441 | strongly_inferred |
| phi_input | cid:undefined | cid#4 | analyzer.py:441 | unresolved |
| phi_input | item#4 | item#5 | analyzer.py:441 | strongly_inferred |
| phi_input | item:undefined | item#5 | analyzer.py:441 | unresolved |
| phi_input | mid#5 | mid#6 | analyzer.py:441 | strongly_inferred |
| phi_input | mid:undefined | mid#6 | analyzer.py:441 | unresolved |
| phi_input | n#9 | n#10 | analyzer.py:441 | strongly_inferred |
| phi_input | n#8 | n#10 | analyzer.py:441 | strongly_inferred |
| phi_input | qname#5 | qname#6 | analyzer.py:441 | strongly_inferred |
| phi_input | qname:undefined | qname#6 | analyzer.py:441 | unresolved |
| phi_input | shape_sig#6 | shape_sig#7 | analyzer.py:441 | strongly_inferred |
| phi_input | shape_sig:undefined | shape_sig#7 | analyzer.py:441 | unresolved |
| phi_input | sid#2 | sid#3 | analyzer.py:441 | strongly_inferred |
| phi_input | sid:undefined | sid#3 | analyzer.py:441 | unresolved |
| phi_input | _fresh#7 | _fresh#8 | analyzer.py:377 | strongly_inferred |
| phi_input | _fresh:undefined | _fresh#8 | analyzer.py:377 | unresolved |
| phi_input | alias#7 | alias#8 | analyzer.py:377 | strongly_inferred |
| phi_input | alias:undefined | alias#8 | analyzer.py:377 | unresolved |
| phi_input | cid#4 | cid#5 | analyzer.py:377 | strongly_inferred |
| phi_input | cid:undefined | cid#5 | analyzer.py:377 | unresolved |
| phi_input | elt#7 | elt#8 | analyzer.py:377 | strongly_inferred |
| phi_input | elt:undefined | elt#8 | analyzer.py:377 | unresolved |
| phi_input | fid#1 | fid#2 | analyzer.py:377 | strongly_inferred |
| phi_input | fid:undefined | fid#2 | analyzer.py:377 | unresolved |
| phi_input | h#1 | h#2 | analyzer.py:377 | strongly_inferred |
| phi_input | h:undefined | h#2 | analyzer.py:377 | unresolved |
| phi_input | import_map#1 | import_map#2 | analyzer.py:377 | strongly_inferred |
| phi_input | import_map:undefined | import_map#2 | analyzer.py:377 | unresolved |
| phi_input | item#5 | item#6 | analyzer.py:377 | strongly_inferred |
| phi_input | item:undefined | item#6 | analyzer.py:377 | unresolved |
| phi_input | mid#6 | mid#7 | analyzer.py:377 | strongly_inferred |
| phi_input | mid:undefined | mid#7 | analyzer.py:377 | unresolved |
| phi_input | mod#3 | mod#4 | analyzer.py:377 | strongly_inferred |
| phi_input | mod:undefined | mod#4 | analyzer.py:377 | unresolved |
| phi_input | module_globals#1 | module_globals#2 | analyzer.py:377 | strongly_inferred |
| phi_input | module_globals:undefined | module_globals#2 | analyzer.py:377 | unresolved |
| phi_input | n#3 | n#11 | analyzer.py:377 | strongly_inferred |
| phi_input | n#10 | n#11 | analyzer.py:377 | strongly_inferred |
| phi_input | path#1 | path#2 | analyzer.py:377 | strongly_inferred |
| phi_input | path:undefined | path#2 | analyzer.py:377 | unresolved |
| phi_input | qname#6 | qname#7 | analyzer.py:377 | strongly_inferred |
| phi_input | qname:undefined | qname#7 | analyzer.py:377 | unresolved |
| phi_input | rel#1 | rel#2 | analyzer.py:377 | strongly_inferred |
| phi_input | rel:undefined | rel#2 | analyzer.py:377 | unresolved |
| phi_input | shape_sig#7 | shape_sig#8 | analyzer.py:377 | strongly_inferred |
| phi_input | shape_sig:undefined | shape_sig#8 | analyzer.py:377 | unresolved |
| phi_input | sid#3 | sid#4 | analyzer.py:377 | strongly_inferred |
| phi_input | sid:undefined | sid#4 | analyzer.py:377 | unresolved |
| phi_input | skip_reason#1 | skip_reason#2 | analyzer.py:377 | strongly_inferred |
| phi_input | skip_reason:undefined | skip_reason#2 | analyzer.py:377 | unresolved |
| phi_input | target#4 | target#5 | analyzer.py:377 | strongly_inferred |
| phi_input | target:undefined | target#5 | analyzer.py:377 | unresolved |
| phi_input | target_mod#4 | target_mod#5 | analyzer.py:377 | strongly_inferred |
| phi_input | target_mod:undefined | target_mod#5 | analyzer.py:377 | unresolved |
| phi_input | targets#3 | targets#4 | analyzer.py:377 | strongly_inferred |
| phi_input | targets:undefined | targets#4 | analyzer.py:377 | unresolved |
| phi_input | text#1 | text#2 | analyzer.py:377 | strongly_inferred |
| phi_input | text:undefined | text#2 | analyzer.py:377 | unresolved |
| phi_input | top#2 | top#3 | analyzer.py:377 | strongly_inferred |
| phi_input | top:undefined | top#3 | analyzer.py:377 | unresolved |
| phi_input | tree#1 | tree#2 | analyzer.py:377 | strongly_inferred |
| phi_input | tree:undefined | tree#2 | analyzer.py:377 | unresolved |
| guards | files#1 | for_loop | analyzer.py:489 | observed |
| flows_to | files#1 | rel#3 | analyzer.py:489 | observed |
| flows_to | files#1 | meta#1 | analyzer.py:489 | observed |
| guards | reuse_mode#1 | branch | analyzer.py:490 | observed |
| guards | rel#3 | branch | analyzer.py:490 | observed |
| guards | dirty_set#1 | branch | analyzer.py:490 | observed |
| flows_to | meta#1 | mod#5 | analyzer.py:492 | observed |
| flows_to | rel#3 | fid#3 | analyzer.py:492 | observed |
| flows_to | meta#1 | h#3 | analyzer.py:492 | observed |
| guards | meta#1 | for_loop | analyzer.py:493 | observed |
| flows_to | meta#1 | n#12 | analyzer.py:493 | observed |
| guards | n#12 | branch | analyzer.py:494 | observed |
| flows_to | n#12 | targets#5 | analyzer.py:495 | observed |
| guards | n#12 | branch | analyzer.py:496 | observed |
| flows_to | mod#5 | targets#6 | analyzer.py:497 | observed |
| flows_to | n#12 | targets#6 | analyzer.py:497 | observed |
| phi_input | targets#6 | targets#7 | analyzer.py:494 | strongly_inferred |
| phi_input | targets#5 | targets#7 | analyzer.py:494 | strongly_inferred |
| guards | targets#7 | for_loop | analyzer.py:500 | observed |
| flows_to | targets#7 | target_mod#6 | analyzer.py:500 | observed |
| aliases_at_definition | targets#7 | target_mod#6 | analyzer.py:500 | observed |
| flows_to | targets#7 | line#1 | analyzer.py:500 | observed |
| aliases_at_definition | targets#7 | line#1 | analyzer.py:500 | observed |
| guards | target_mod#6 | branch | analyzer.py:501 | observed |
| guards | module_to_file#1 | branch | analyzer.py:501 | observed |
| flows_to | module_to_file#1 | tid#1 | analyzer.py:502 | observed |
| flows_to | target_mod#6 | tid#1 | analyzer.py:502 | observed |
| flows_to | target_mod#6 | tid#2 | analyzer.py:504 | observed |
| flows_to | nodes#3 | expr@505 | analyzer.py:505 | observed |
| flows_to | tid#2 | expr@505 | analyzer.py:505 | observed |
| flows_to | target_mod#6 | expr@505 | analyzer.py:505 | observed |
| phi_input | resolution#2 | resolution#3 | analyzer.py:501 | strongly_inferred |
| phi_input | resolution#1 | resolution#3 | analyzer.py:501 | strongly_inferred |
| phi_input | tid#2 | tid#3 | analyzer.py:501 | strongly_inferred |
| phi_input | tid#1 | tid#3 | analyzer.py:501 | strongly_inferred |
| flows_to | edges#3 | expr@508 | analyzer.py:508 | observed |
| flows_to | fid#3 | expr@508 | analyzer.py:508 | observed |
| flows_to | tid#3 | expr@508 | analyzer.py:508 | observed |
| flows_to | line#1 | expr@508 | analyzer.py:508 | observed |
| flows_to | resolution#3 | expr@508 | analyzer.py:509 | observed |
| flows_to | resolution#3 | expr@508 | analyzer.py:510 | observed |
| flows_to | rel#3 | expr@508 | analyzer.py:511 | observed |
| flows_to | line#1 | expr@508 | analyzer.py:511 | observed |
| flows_to | h#3 | expr@508 | analyzer.py:511 | observed |
| phi_input | line#1 | line#2 | analyzer.py:500 | strongly_inferred |
| phi_input | line:undefined | line#2 | analyzer.py:500 | unresolved |
| phi_input | resolution#3 | resolution#4 | analyzer.py:500 | strongly_inferred |
| phi_input | resolution:undefined | resolution#4 | analyzer.py:500 | unresolved |
| phi_input | target_mod#5 | target_mod#7 | analyzer.py:500 | strongly_inferred |
| phi_input | target_mod#6 | target_mod#7 | analyzer.py:500 | strongly_inferred |
| phi_input | tid#3 | tid#4 | analyzer.py:500 | strongly_inferred |
| phi_input | tid:undefined | tid#4 | analyzer.py:500 | unresolved |
| phi_input | line#2 | line#3 | analyzer.py:493 | strongly_inferred |
| phi_input | line:undefined | line#3 | analyzer.py:493 | unresolved |
| phi_input | n#12 | n#13 | analyzer.py:493 | strongly_inferred |
| phi_input | n#11 | n#13 | analyzer.py:493 | strongly_inferred |
| phi_input | resolution#4 | resolution#5 | analyzer.py:493 | strongly_inferred |
| phi_input | resolution:undefined | resolution#5 | analyzer.py:493 | unresolved |
| phi_input | target_mod#5 | target_mod#8 | analyzer.py:493 | strongly_inferred |
| phi_input | target_mod#7 | target_mod#8 | analyzer.py:493 | strongly_inferred |
| phi_input | targets#4 | targets#8 | analyzer.py:493 | strongly_inferred |
| phi_input | targets#7 | targets#8 | analyzer.py:493 | strongly_inferred |
| phi_input | tid#4 | tid#5 | analyzer.py:493 | strongly_inferred |
| phi_input | tid:undefined | tid#5 | analyzer.py:493 | unresolved |
| phi_input | fid#3 | fid#4 | analyzer.py:489 | strongly_inferred |
| phi_input | fid#2 | fid#4 | analyzer.py:489 | strongly_inferred |
| phi_input | h#2 | h#4 | analyzer.py:489 | strongly_inferred |
| phi_input | h#3 | h#4 | analyzer.py:489 | strongly_inferred |
| phi_input | line#3 | line#4 | analyzer.py:489 | strongly_inferred |
| phi_input | line:undefined | line#4 | analyzer.py:489 | unresolved |
| phi_input | meta#1 | meta#2 | analyzer.py:489 | strongly_inferred |
| phi_input | meta:undefined | meta#2 | analyzer.py:489 | unresolved |
| phi_input | mod#5 | mod#6 | analyzer.py:489 | strongly_inferred |
| phi_input | mod#4 | mod#6 | analyzer.py:489 | strongly_inferred |
| phi_input | n#11 | n#14 | analyzer.py:489 | strongly_inferred |
| phi_input | n#13 | n#14 | analyzer.py:489 | strongly_inferred |
| phi_input | rel#2 | rel#4 | analyzer.py:489 | strongly_inferred |
| phi_input | rel#3 | rel#4 | analyzer.py:489 | strongly_inferred |
| phi_input | resolution#5 | resolution#6 | analyzer.py:489 | strongly_inferred |
| phi_input | resolution:undefined | resolution#6 | analyzer.py:489 | unresolved |
| phi_input | target_mod#5 | target_mod#9 | analyzer.py:489 | strongly_inferred |
| phi_input | target_mod#8 | target_mod#9 | analyzer.py:489 | strongly_inferred |
| phi_input | targets#4 | targets#9 | analyzer.py:489 | strongly_inferred |
| phi_input | targets#8 | targets#9 | analyzer.py:489 | strongly_inferred |
| phi_input | tid#5 | tid#6 | analyzer.py:489 | strongly_inferred |
| phi_input | tid:undefined | tid#6 | analyzer.py:489 | unresolved |
| flows_to | nodes#3 | function_features#1 | analyzer.py:516 | observed |
| guards | functions#1 | for_loop | analyzer.py:520 | observed |
| flows_to | functions#1 | info#1 | analyzer.py:520 | observed |
| aliases_at_definition | functions#1 | info#1 | analyzer.py:520 | observed |
| flows_to | info#1 | fn#1 | analyzer.py:521 | observed |
| flows_to | info#1 | rel#5 | analyzer.py:521 | observed |
| flows_to | info#1 | mod#7 | analyzer.py:521 | observed |
| flows_to | info#1 | qname#8 | analyzer.py:521 | observed |
| flows_to | info#1 | owner_id#1 | analyzer.py:521 | observed |
| flows_to | info#1 | class_name#1 | analyzer.py:521 | observed |
| guards | reuse_mode#1 | branch | analyzer.py:522 | observed |
| guards | rel#5 | branch | analyzer.py:522 | observed |
| guards | dirty_set#1 | branch | analyzer.py:522 | observed |
| flows_to | files#1 | h#5 | analyzer.py:524 | observed |
| flows_to | rel#5 | h#5 | analyzer.py:524 | observed |
| flows_to | imports_by_module#1 | import_map#3 | analyzer.py:524 | observed |
| flows_to | mod#7 | import_map#3 | analyzer.py:524 | observed |
| flows_to | fn#1 | defaults#1 | analyzer.py:525 | observed |
| guards | defaults#1 | for_loop | analyzer.py:526 | observed |
| flows_to | defaults#1 | d#1 | analyzer.py:526 | observed |
| aliases_at_definition | defaults#1 | d#1 | analyzer.py:526 | observed |
| guards | d#1 | branch | analyzer.py:527 | observed |
| flows_to | findings#3 | expr@528 | analyzer.py:528 | observed |
| flows_to | rel#5 | expr@528 | analyzer.py:528 | observed |
| flows_to | qname#8 | expr@528 | analyzer.py:529 | observed |
| flows_to | fn#1 | expr@528 | analyzer.py:529 | observed |
| phi_input | d#1 | d#2 | analyzer.py:526 | strongly_inferred |
| phi_input | d:undefined | d#2 | analyzer.py:526 | unresolved |
| flows_to | findings#3 | expr@531 | analyzer.py:531 | observed |
| flows_to | fn#1 | expr@531 | analyzer.py:531 | observed |
| flows_to | rel#5 | expr@531 | analyzer.py:531 | observed |
| flows_to | qname#8 | expr@531 | analyzer.py:531 | observed |
| flows_to | rel#5 | scan#1 | analyzer.py:532 | observed |
| flows_to | qname#8 | scan#1 | analyzer.py:532 | observed |
| guards | fn#1 | for_loop | analyzer.py:533 | observed |
| flows_to | fn#1 | st#1 | analyzer.py:533 | observed |
| flows_to | scan#1 | expr@534 | analyzer.py:534 | observed |
| flows_to | st#1 | expr@534 | analyzer.py:534 | observed |
| phi_input | st#1 | st#2 | analyzer.py:533 | strongly_inferred |
| phi_input | st:undefined | st#2 | analyzer.py:533 | unresolved |
| guards | scan#1 | for_loop | analyzer.py:535 | observed |
| flows_to | scan#1 | issue#1 | analyzer.py:535 | observed |
| flows_to | findings#3 | expr@536 | analyzer.py:536 | observed |
| flows_to | rel#5 | expr@536 | analyzer.py:536 | observed |
| flows_to | qname#8 | expr@536 | analyzer.py:536 | observed |
| flows_to | issue#1 | expr@536 | analyzer.py:536 | observed |
| phi_input | issue#1 | issue#2 | analyzer.py:535 | strongly_inferred |
| phi_input | issue:undefined | issue#2 | analyzer.py:535 | unresolved |
| guards | scan#1 | for_loop | analyzer.py:539 | observed |
| flows_to | scan#1 | ctrl#1 | analyzer.py:539 | observed |
| flows_to | rel#5 | cid#6 | analyzer.py:540 | observed |
| flows_to | qname#8 | cid#6 | analyzer.py:540 | observed |
| flows_to | ctrl#1 | cid#6 | analyzer.py:540 | observed |
| flows_to | edges#3 | expr@544 | analyzer.py:544 | observed |
| flows_to | owner_id#1 | expr@544 | analyzer.py:544 | observed |
| flows_to | cid#6 | expr@544 | analyzer.py:544 | observed |
| flows_to | rel#5 | expr@544 | analyzer.py:546 | observed |
| flows_to | ctrl#1 | expr@544 | analyzer.py:546 | observed |
| flows_to | h#5 | expr@544 | analyzer.py:546 | observed |
| flows_to | feature#1 | expr@547 | analyzer.py:547 | observed |
| flows_to | ctrl#1 | expr@547 | analyzer.py:547 | observed |
| phi_input | cid#6 | cid#7 | analyzer.py:539 | strongly_inferred |
| phi_input | cid#5 | cid#7 | analyzer.py:539 | strongly_inferred |
| phi_input | ctrl#1 | ctrl#2 | analyzer.py:539 | strongly_inferred |
| phi_input | ctrl:undefined | ctrl#2 | analyzer.py:539 | unresolved |
| flows_to | fn#1 | closure#1 | analyzer.py:551 | observed |
| flows_to | rel#5 | closure#1 | analyzer.py:551 | observed |
| flows_to | qname#8 | closure#1 | analyzer.py:551 | observed |
| flows_to | owner_id#1 | closure#1 | analyzer.py:551 | observed |
| flows_to | h#5 | closure#1 | analyzer.py:551 | observed |
| flows_to | mod#7 | closure#1 | analyzer.py:551 | observed |
| flows_to | class_name#1 | closure#1 | analyzer.py:551 | observed |
| flows_to | files#1 | closure#1 | analyzer.py:552 | observed |
| flows_to | rel#5 | closure#1 | analyzer.py:552 | observed |
| guards | closure#1 | for_loop | analyzer.py:554 | observed |
| flows_to | closure#1 | n#15 | analyzer.py:554 | observed |
| flows_to | nodes#3 | expr@555 | analyzer.py:555 | observed |
| flows_to | n#15 | expr@555 | analyzer.py:555 | observed |
| phi_input | n#15 | n#16 | analyzer.py:554 | strongly_inferred |
| phi_input | n#14 | n#16 | analyzer.py:554 | strongly_inferred |
| flows_to | edges#3 | expr@556 | analyzer.py:556 | observed |
| flows_to | closure#1 | expr@556 | analyzer.py:556 | observed |
| flows_to | findings#3 | expr@557 | analyzer.py:557 | observed |
| flows_to | closure#1 | expr@557 | analyzer.py:557 | observed |
| flows_to | closure#1 | csum#1 | analyzer.py:558 | observed |
| guards | scan#1 | for_loop | analyzer.py:566 | observed |
| flows_to | scan#1 | ef#1 | analyzer.py:566 | observed |
| flows_to | ef#1 | eid#1 | analyzer.py:567 | observed |
| flows_to | nodes#3 | expr@568 | analyzer.py:568 | observed |
| flows_to | eid#1 | expr@568 | analyzer.py:568 | observed |
| flows_to | ef#1 | expr@568 | analyzer.py:568 | observed |
| flows_to | edges#3 | expr@569 | analyzer.py:569 | observed |
| flows_to | owner_id#1 | expr@569 | analyzer.py:569 | observed |
| flows_to | eid#1 | expr@569 | analyzer.py:569 | observed |
| flows_to | ef#1 | expr@569 | analyzer.py:569 | observed |
| flows_to | eid#1 | expr@569 | analyzer.py:570 | observed |
| flows_to | ef#1 | expr@569 | analyzer.py:570 | observed |
| flows_to | rel#5 | expr@569 | analyzer.py:571 | observed |
| flows_to | ef#1 | expr@569 | analyzer.py:571 | observed |
| flows_to | h#5 | expr@569 | analyzer.py:571 | observed |
| flows_to | feature#1 | expr@572 | analyzer.py:572 | observed |
| flows_to | ef#1 | expr@572 | analyzer.py:572 | observed |
| phi_input | ef#1 | ef#2 | analyzer.py:566 | strongly_inferred |
| phi_input | ef:undefined | ef#2 | analyzer.py:566 | unresolved |
| phi_input | eid#1 | eid#2 | analyzer.py:566 | strongly_inferred |
| phi_input | eid:undefined | eid#2 | analyzer.py:566 | unresolved |
| guards | scan#1 | for_loop | analyzer.py:574 | observed |
| flows_to | scan#1 | call#1 | analyzer.py:574 | observed |
| flows_to | call#1 | callee#1 | analyzer.py:575 | observed |
| guards | callee#1 | branch | analyzer.py:576 | observed |
| guards | mod#7 | branch | analyzer.py:577 | observed |
| guards | callee#1 | branch | analyzer.py:577 | observed |
| guards | definitions#1 | branch | analyzer.py:577 | observed |
| flows_to | definitions#1 | target_id#2 | analyzer.py:578 | observed |
| flows_to | mod#7 | target_id#2 | analyzer.py:578 | observed |
| flows_to | callee#1 | target_id#2 | analyzer.py:578 | observed |
| guards | callee#1 | branch | analyzer.py:579 | observed |
| guards | import_map#3 | branch | analyzer.py:579 | observed |
| flows_to | import_map#3 | im#1 | analyzer.py:580 | observed |
| flows_to | callee#1 | im#1 | analyzer.py:580 | observed |
| flows_to | import_map#3 | sym#1 | analyzer.py:580 | observed |
| flows_to | callee#1 | sym#1 | analyzer.py:580 | observed |
| guards | sym#1 | branch | analyzer.py:581 | observed |
| guards | im#1 | branch | analyzer.py:581 | observed |
| guards | definitions#1 | branch | analyzer.py:581 | observed |
| flows_to | definitions#1 | target_id#3 | analyzer.py:582 | observed |
| flows_to | im#1 | target_id#3 | analyzer.py:582 | observed |
| flows_to | sym#1 | target_id#3 | analyzer.py:582 | observed |
| phi_input | resolution#9 | resolution#10 | analyzer.py:581 | strongly_inferred |
| phi_input | resolution#7 | resolution#10 | analyzer.py:581 | strongly_inferred |
| phi_input | target_id#3 | target_id#4 | analyzer.py:581 | strongly_inferred |
| phi_input | target_id#1 | target_id#4 | analyzer.py:581 | strongly_inferred |
| phi_input | im#1 | im#2 | analyzer.py:579 | strongly_inferred |
| phi_input | im:undefined | im#2 | analyzer.py:579 | unresolved |
| phi_input | resolution#10 | resolution#11 | analyzer.py:579 | strongly_inferred |
| phi_input | resolution#7 | resolution#11 | analyzer.py:579 | strongly_inferred |
| phi_input | sym#1 | sym#2 | analyzer.py:579 | strongly_inferred |
| phi_input | sym:undefined | sym#2 | analyzer.py:579 | unresolved |
| phi_input | target_id#4 | target_id#5 | analyzer.py:579 | strongly_inferred |
| phi_input | target_id#1 | target_id#5 | analyzer.py:579 | strongly_inferred |
| phi_input | im#2 | im#3 | analyzer.py:577 | strongly_inferred |
| phi_input | im:undefined | im#3 | analyzer.py:577 | unresolved |
| phi_input | resolution#11 | resolution#12 | analyzer.py:577 | strongly_inferred |
| phi_input | resolution#8 | resolution#12 | analyzer.py:577 | strongly_inferred |
| phi_input | sym#2 | sym#3 | analyzer.py:577 | strongly_inferred |
| phi_input | sym:undefined | sym#3 | analyzer.py:577 | unresolved |
| phi_input | target_id#5 | target_id#6 | analyzer.py:577 | strongly_inferred |
| phi_input | target_id#2 | target_id#6 | analyzer.py:577 | strongly_inferred |
| flows_to | callee#1 | head#1 | analyzer.py:584 | observed |
| flows_to | callee#1 | tail#1 | analyzer.py:584 | observed |
| guards | head#1 | branch | analyzer.py:585 | observed |
| guards | import_map#3 | branch | analyzer.py:585 | observed |
| flows_to | import_map#3 | im#4 | analyzer.py:586 | observed |
| flows_to | head#1 | im#4 | analyzer.py:586 | observed |
| flows_to | import_map#3 | sym#4 | analyzer.py:586 | observed |
| flows_to | head#1 | sym#4 | analyzer.py:586 | observed |
| flows_to | sym#4 | candidate#1 | analyzer.py:587 | observed |
| flows_to | tail#1 | candidate#1 | analyzer.py:587 | observed |
| guards | im#4 | branch | analyzer.py:588 | observed |
| guards | candidate#1 | branch | analyzer.py:588 | observed |
| guards | definitions#1 | branch | analyzer.py:588 | observed |
| flows_to | definitions#1 | target_id#7 | analyzer.py:589 | observed |
| flows_to | im#4 | target_id#7 | analyzer.py:589 | observed |
| flows_to | candidate#1 | target_id#7 | analyzer.py:589 | observed |
| phi_input | resolution#13 | resolution#14 | analyzer.py:588 | strongly_inferred |
| phi_input | resolution#7 | resolution#14 | analyzer.py:588 | strongly_inferred |
| phi_input | target_id#7 | target_id#8 | analyzer.py:588 | strongly_inferred |
| phi_input | target_id#1 | target_id#8 | analyzer.py:588 | strongly_inferred |
| phi_input | candidate#1 | candidate#2 | analyzer.py:585 | strongly_inferred |
| phi_input | candidate:undefined | candidate#2 | analyzer.py:585 | unresolved |
| phi_input | im#4 | im#5 | analyzer.py:585 | strongly_inferred |
| phi_input | im:undefined | im#5 | analyzer.py:585 | unresolved |
| phi_input | resolution#14 | resolution#15 | analyzer.py:585 | strongly_inferred |
| phi_input | resolution#7 | resolution#15 | analyzer.py:585 | strongly_inferred |
| phi_input | sym#4 | sym#5 | analyzer.py:585 | strongly_inferred |
| phi_input | sym:undefined | sym#5 | analyzer.py:585 | unresolved |
| phi_input | target_id#1 | target_id#9 | analyzer.py:585 | strongly_inferred |
| phi_input | target_id#8 | target_id#9 | analyzer.py:585 | strongly_inferred |
| guards | head#1 | branch | analyzer.py:590 | observed |
| guards | class_name#1 | branch | analyzer.py:590 | observed |
| guards | mod#7 | branch | analyzer.py:590 | observed |
| guards | tail#1 | branch | analyzer.py:590 | observed |
| guards | definitions#1 | branch | analyzer.py:590 | observed |
| flows_to | definitions#1 | target_id#10 | analyzer.py:591 | observed |
| flows_to | mod#7 | target_id#10 | analyzer.py:591 | observed |
| flows_to | class_name#1 | target_id#10 | analyzer.py:591 | observed |
| flows_to | tail#1 | target_id#10 | analyzer.py:591 | observed |
| phi_input | resolution#15 | resolution#17 | analyzer.py:590 | strongly_inferred |
| phi_input | resolution#16 | resolution#17 | analyzer.py:590 | strongly_inferred |
| phi_input | target_id#9 | target_id#11 | analyzer.py:590 | strongly_inferred |
| phi_input | target_id#10 | target_id#11 | analyzer.py:590 | strongly_inferred |
| phi_input | candidate#2 | candidate#3 | analyzer.py:576 | strongly_inferred |
| phi_input | candidate:undefined | candidate#3 | analyzer.py:576 | unresolved |
| phi_input | head#1 | head#2 | analyzer.py:576 | strongly_inferred |
| phi_input | head:undefined | head#2 | analyzer.py:576 | unresolved |
| phi_input | im#3 | im#6 | analyzer.py:576 | strongly_inferred |
| phi_input | im#5 | im#6 | analyzer.py:576 | strongly_inferred |
| phi_input | resolution#17 | resolution#18 | analyzer.py:576 | strongly_inferred |
| phi_input | resolution#12 | resolution#18 | analyzer.py:576 | strongly_inferred |
| phi_input | sym#3 | sym#6 | analyzer.py:576 | strongly_inferred |
| phi_input | sym#5 | sym#6 | analyzer.py:576 | strongly_inferred |
| phi_input | tail#1 | tail#2 | analyzer.py:576 | strongly_inferred |
| phi_input | tail:undefined | tail#2 | analyzer.py:576 | unresolved |
| phi_input | target_id#11 | target_id#12 | analyzer.py:576 | strongly_inferred |
| phi_input | target_id#6 | target_id#12 | analyzer.py:576 | strongly_inferred |
| guards | target_id#12 | branch | analyzer.py:592 | observed |
| flows_to | callee#1 | target_id#13 | analyzer.py:593 | observed |
| flows_to | nodes#3 | expr@594 | analyzer.py:594 | observed |
| flows_to | target_id#13 | expr@594 | analyzer.py:594 | observed |
| flows_to | callee#1 | expr@594 | analyzer.py:594 | observed |
| phi_input | target_id#13 | target_id#14 | analyzer.py:592 | strongly_inferred |
| phi_input | target_id#12 | target_id#14 | analyzer.py:592 | strongly_inferred |
| flows_to | edges#3 | expr@599 | analyzer.py:599 | observed |
| flows_to | owner_id#1 | expr@599 | analyzer.py:599 | observed |
| flows_to | target_id#14 | expr@599 | analyzer.py:599 | observed |
| flows_to | call#1 | expr@599 | analyzer.py:599 | observed |
| flows_to | target_id#14 | expr@599 | analyzer.py:600 | observed |
| flows_to | callee#1 | expr@599 | analyzer.py:600 | observed |
| flows_to | resolution#18 | expr@599 | analyzer.py:600 | observed |
| flows_to | resolution#18 | expr@599 | analyzer.py:601 | observed |
| flows_to | resolution#18 | expr@599 | analyzer.py:602 | observed |
| flows_to | rel#5 | expr@599 | analyzer.py:603 | observed |
| flows_to | call#1 | expr@599 | analyzer.py:603 | observed |
| flows_to | h#5 | expr@599 | analyzer.py:603 | observed |
| phi_input | call#1 | call#2 | analyzer.py:574 | strongly_inferred |
| phi_input | call:undefined | call#2 | analyzer.py:574 | unresolved |
| phi_input | callee#1 | callee#2 | analyzer.py:574 | strongly_inferred |
| phi_input | callee:undefined | callee#2 | analyzer.py:574 | unresolved |
| phi_input | candidate#3 | candidate#4 | analyzer.py:574 | strongly_inferred |
| phi_input | candidate:undefined | candidate#4 | analyzer.py:574 | unresolved |
| phi_input | head#2 | head#3 | analyzer.py:574 | strongly_inferred |
| phi_input | head:undefined | head#3 | analyzer.py:574 | unresolved |
| phi_input | im#6 | im#7 | analyzer.py:574 | strongly_inferred |
| phi_input | im:undefined | im#7 | analyzer.py:574 | unresolved |
| phi_input | resolution#18 | resolution#19 | analyzer.py:574 | strongly_inferred |
| phi_input | resolution#6 | resolution#19 | analyzer.py:574 | strongly_inferred |
| phi_input | sym#6 | sym#7 | analyzer.py:574 | strongly_inferred |
| phi_input | sym:undefined | sym#7 | analyzer.py:574 | unresolved |
| phi_input | tail#2 | tail#3 | analyzer.py:574 | strongly_inferred |
| phi_input | tail:undefined | tail#3 | analyzer.py:574 | unresolved |
| phi_input | target_id#14 | target_id#15 | analyzer.py:574 | strongly_inferred |
| phi_input | target_id:undefined | target_id#15 | analyzer.py:574 | unresolved |
| flows_to | feature#1 | sig#1 | analyzer.py:606 | observed |
| flows_to | feature#1 | coarse_sig#1 | analyzer.py:607 | observed |
| guards | feature#1 | for_loop | analyzer.py:611 | observed |
| flows_to | feature#1 | m#1 | analyzer.py:611 | observed |
| flows_to | motifs#3 | expr@612 | analyzer.py:612 | observed |
| flows_to | owner_id#1 | expr@612 | analyzer.py:612 | observed |
| flows_to | m#1 | expr@612 | analyzer.py:612 | observed |
| flows_to | rel#5 | expr@612 | analyzer.py:613 | observed |
| flows_to | qname#8 | expr@612 | analyzer.py:613 | observed |
| flows_to | m#1 | expr@612 | analyzer.py:613 | observed |
| phi_input | m#1 | m#2 | analyzer.py:611 | strongly_inferred |
| phi_input | m:undefined | m#2 | analyzer.py:611 | unresolved |
| phi_input | call#2 | call#3 | analyzer.py:520 | strongly_inferred |
| phi_input | call:undefined | call#3 | analyzer.py:520 | unresolved |
| phi_input | callee#2 | callee#3 | analyzer.py:520 | strongly_inferred |
| phi_input | callee:undefined | callee#3 | analyzer.py:520 | unresolved |
| phi_input | candidate#4 | candidate#5 | analyzer.py:520 | strongly_inferred |
| phi_input | candidate:undefined | candidate#5 | analyzer.py:520 | unresolved |
| phi_input | cid#7 | cid#8 | analyzer.py:520 | strongly_inferred |
| phi_input | cid#5 | cid#8 | analyzer.py:520 | strongly_inferred |
| phi_input | class_name#1 | class_name#2 | analyzer.py:520 | strongly_inferred |
| phi_input | class_name:undefined | class_name#2 | analyzer.py:520 | unresolved |
| phi_input | closure#1 | closure#2 | analyzer.py:520 | strongly_inferred |
| phi_input | closure:undefined | closure#2 | analyzer.py:520 | unresolved |
| phi_input | coarse_sig#1 | coarse_sig#2 | analyzer.py:520 | strongly_inferred |
| phi_input | coarse_sig:undefined | coarse_sig#2 | analyzer.py:520 | unresolved |
| phi_input | csum#1 | csum#2 | analyzer.py:520 | strongly_inferred |
| phi_input | csum:undefined | csum#2 | analyzer.py:520 | unresolved |
| phi_input | ctrl#2 | ctrl#3 | analyzer.py:520 | strongly_inferred |
| phi_input | ctrl:undefined | ctrl#3 | analyzer.py:520 | unresolved |
| phi_input | d#2 | d#3 | analyzer.py:520 | strongly_inferred |
| phi_input | d:undefined | d#3 | analyzer.py:520 | unresolved |
| phi_input | defaults#1 | defaults#2 | analyzer.py:520 | strongly_inferred |
| phi_input | defaults:undefined | defaults#2 | analyzer.py:520 | unresolved |
| phi_input | ef#2 | ef#3 | analyzer.py:520 | strongly_inferred |
| phi_input | ef:undefined | ef#3 | analyzer.py:520 | unresolved |
| phi_input | eid#2 | eid#3 | analyzer.py:520 | strongly_inferred |
| phi_input | eid:undefined | eid#3 | analyzer.py:520 | unresolved |
| phi_input | feature#1 | feature#2 | analyzer.py:520 | strongly_inferred |
| phi_input | feature:undefined | feature#2 | analyzer.py:520 | unresolved |
| phi_input | fn#1 | fn#2 | analyzer.py:520 | strongly_inferred |
| phi_input | fn:undefined | fn#2 | analyzer.py:520 | unresolved |
| phi_input | h#5 | h#6 | analyzer.py:520 | strongly_inferred |
| phi_input | h#4 | h#6 | analyzer.py:520 | strongly_inferred |
| phi_input | head#3 | head#4 | analyzer.py:520 | strongly_inferred |
| phi_input | head:undefined | head#4 | analyzer.py:520 | unresolved |
| phi_input | im#7 | im#8 | analyzer.py:520 | strongly_inferred |
| phi_input | im:undefined | im#8 | analyzer.py:520 | unresolved |
| phi_input | import_map#2 | import_map#4 | analyzer.py:520 | strongly_inferred |
| phi_input | import_map#3 | import_map#4 | analyzer.py:520 | strongly_inferred |
| phi_input | info#1 | info#2 | analyzer.py:520 | strongly_inferred |
| phi_input | info:undefined | info#2 | analyzer.py:520 | unresolved |
| phi_input | issue#2 | issue#3 | analyzer.py:520 | strongly_inferred |
| phi_input | issue:undefined | issue#3 | analyzer.py:520 | unresolved |
| phi_input | m#2 | m#3 | analyzer.py:520 | strongly_inferred |
| phi_input | m:undefined | m#3 | analyzer.py:520 | unresolved |
| phi_input | mod#6 | mod#8 | analyzer.py:520 | strongly_inferred |
| phi_input | mod#7 | mod#8 | analyzer.py:520 | strongly_inferred |
| phi_input | n#14 | n#17 | analyzer.py:520 | strongly_inferred |
| phi_input | n#16 | n#17 | analyzer.py:520 | strongly_inferred |
| phi_input | owner_id#1 | owner_id#2 | analyzer.py:520 | strongly_inferred |
| phi_input | owner_id:undefined | owner_id#2 | analyzer.py:520 | unresolved |
| phi_input | qname#7 | qname#9 | analyzer.py:520 | strongly_inferred |
| phi_input | qname#8 | qname#9 | analyzer.py:520 | strongly_inferred |
| phi_input | rel#5 | rel#6 | analyzer.py:520 | strongly_inferred |
| phi_input | rel#4 | rel#6 | analyzer.py:520 | strongly_inferred |
| phi_input | resolution#19 | resolution#20 | analyzer.py:520 | strongly_inferred |
| phi_input | resolution#6 | resolution#20 | analyzer.py:520 | strongly_inferred |
| phi_input | scan#1 | scan#2 | analyzer.py:520 | strongly_inferred |
| phi_input | scan:undefined | scan#2 | analyzer.py:520 | unresolved |
| phi_input | sig#1 | sig#2 | analyzer.py:520 | strongly_inferred |
| phi_input | sig:undefined | sig#2 | analyzer.py:520 | unresolved |
| phi_input | st#2 | st#3 | analyzer.py:520 | strongly_inferred |
| phi_input | st:undefined | st#3 | analyzer.py:520 | unresolved |
| phi_input | sym#7 | sym#8 | analyzer.py:520 | strongly_inferred |
| phi_input | sym:undefined | sym#8 | analyzer.py:520 | unresolved |
| phi_input | tail#3 | tail#4 | analyzer.py:520 | strongly_inferred |
| phi_input | tail:undefined | tail#4 | analyzer.py:520 | unresolved |
| phi_input | target_id#15 | target_id#16 | analyzer.py:520 | strongly_inferred |
| phi_input | target_id:undefined | target_id#16 | analyzer.py:520 | unresolved |
| flows_to | nodes#3 | expr@617 | analyzer.py:617 | observed |
| flows_to | edges#3 | expr@617 | analyzer.py:617 | observed |
| guards | nodes#3 | for_loop | analyzer.py:621 | observed |
| flows_to | nodes#3 | nid#4 | analyzer.py:621 | observed |
| flows_to | nodes#3 | n#18 | analyzer.py:621 | observed |
| guards | n#18 | branch | analyzer.py:622 | observed |
| flows_to | import_g#1 | expr@622 | analyzer.py:622 | observed |
| flows_to | nid#4 | expr@622 | analyzer.py:622 | observed |
| guards | n#18 | branch | analyzer.py:623 | observed |
| flows_to | call_g#1 | expr@623 | analyzer.py:623 | observed |
| flows_to | nid#4 | expr@623 | analyzer.py:623 | observed |
| phi_input | n#17 | n#19 | analyzer.py:621 | strongly_inferred |
| phi_input | n#18 | n#19 | analyzer.py:621 | strongly_inferred |
| phi_input | nid#3 | nid#5 | analyzer.py:621 | strongly_inferred |
| phi_input | nid#4 | nid#5 | analyzer.py:621 | strongly_inferred |
| guards | edges#3 | for_loop | analyzer.py:624 | observed |
| flows_to | edges#3 | e#2 | analyzer.py:624 | observed |
| aliases_at_definition | edges#3 | e#2 | analyzer.py:624 | observed |
| guards | e#2 | branch | analyzer.py:625 | observed |
| flows_to | import_g#1 | expr@625 | analyzer.py:625 | observed |
| flows_to | e#2 | expr@625 | analyzer.py:625 | observed |
| guards | e#2 | branch | analyzer.py:626 | observed |
| guards | call_g#1 | branch | analyzer.py:626 | observed |
| flows_to | call_g#1 | expr@627 | analyzer.py:627 | observed |
| flows_to | e#2 | expr@627 | analyzer.py:627 | observed |
| phi_input | e#2 | e#3 | analyzer.py:624 | strongly_inferred |
| phi_input | e:undefined | e#3 | analyzer.py:624 | unresolved |
| guards | import_g#1 | for_loop | analyzer.py:629 | observed |
| flows_to | import_g#1 | cyc#1 | analyzer.py:629 | observed |
| flows_to | findings#3 | expr@630 | analyzer.py:630 | observed |
| flows_to | cyc#1 | expr@630 | analyzer.py:630 | observed |
| phi_input | cyc#1 | cyc#2 | analyzer.py:629 | strongly_inferred |
| phi_input | cyc:undefined | cyc#2 | analyzer.py:629 | unresolved |
| guards | call_g#1 | for_loop | analyzer.py:632 | observed |
| flows_to | call_g#1 | cyc#3 | analyzer.py:632 | observed |
| flows_to | findings#3 | expr@633 | analyzer.py:633 | observed |
| flows_to | cyc#3 | expr@633 | analyzer.py:633 | observed |
| phi_input | cyc#3 | cyc#4 | analyzer.py:632 | strongly_inferred |
| phi_input | cyc#2 | cyc#4 | analyzer.py:632 | strongly_inferred |
| flows_to | edges#3 | out_calls#1 | analyzer.py:637 | observed |
| flows_to | edges#3 | unresolved_calls#1 | analyzer.py:638 | observed |
| guards | out_calls#1 | for_loop | analyzer.py:639 | observed |
| flows_to | out_calls#1 | nid#6 | analyzer.py:639 | observed |
| flows_to | out_calls#1 | count#1 | analyzer.py:639 | observed |
| guards | count#1 | branch | analyzer.py:640 | observed |
| guards | nid#6 | branch | analyzer.py:640 | observed |
| guards | nodes#3 | branch | analyzer.py:640 | observed |
| flows_to | nodes#3 | n#20 | analyzer.py:641 | observed |
| flows_to | nid#6 | n#20 | analyzer.py:641 | observed |
| flows_to | findings#3 | expr@642 | analyzer.py:642 | observed |
| flows_to | n#20 | expr@642 | analyzer.py:642 | observed |
| flows_to | n#20 | expr@642 | analyzer.py:643 | observed |
| flows_to | count#1 | expr@642 | analyzer.py:643 | observed |
| phi_input | n#19 | n#21 | analyzer.py:640 | strongly_inferred |
| phi_input | n#20 | n#21 | analyzer.py:640 | strongly_inferred |
| guards | unresolved_calls#1 | branch | analyzer.py:645 | observed |
| guards | nid#6 | branch | analyzer.py:645 | observed |
| guards | nodes#3 | branch | analyzer.py:645 | observed |
| flows_to | nodes#3 | n#22 | analyzer.py:646 | observed |
| flows_to | nid#6 | n#22 | analyzer.py:646 | observed |
| flows_to | findings#3 | expr@647 | analyzer.py:647 | observed |
| flows_to | n#22 | expr@647 | analyzer.py:647 | observed |
| flows_to | n#22 | expr@647 | analyzer.py:648 | observed |
| flows_to | unresolved_calls#1 | expr@647 | analyzer.py:648 | observed |
| flows_to | nid#6 | expr@647 | analyzer.py:648 | observed |
| phi_input | n#21 | n#23 | analyzer.py:645 | strongly_inferred |
| phi_input | n#22 | n#23 | analyzer.py:645 | strongly_inferred |
| phi_input | count#1 | count#2 | analyzer.py:639 | strongly_inferred |
| phi_input | count:undefined | count#2 | analyzer.py:639 | unresolved |
| phi_input | n#23 | n#24 | analyzer.py:639 | strongly_inferred |
| phi_input | n#19 | n#24 | analyzer.py:639 | strongly_inferred |
| phi_input | nid#6 | nid#7 | analyzer.py:639 | strongly_inferred |
| phi_input | nid#5 | nid#7 | analyzer.py:639 | strongly_inferred |
| guards | edges#3 | for_loop | analyzer.py:653 | observed |
| flows_to | edges#3 | e#4 | analyzer.py:653 | observed |
| aliases_at_definition | edges#3 | e#4 | analyzer.py:653 | observed |
| guards | e#4 | branch | analyzer.py:654 | observed |
| flows_to | state_writers#1 | expr@655 | analyzer.py:655 | observed |
| flows_to | e#4 | expr@655 | analyzer.py:655 | observed |
| guards | e#4 | branch | analyzer.py:656 | observed |
| flows_to | state_readers#1 | expr@657 | analyzer.py:657 | observed |
| flows_to | e#4 | expr@657 | analyzer.py:657 | observed |
| phi_input | e#4 | e#5 | analyzer.py:653 | strongly_inferred |
| phi_input | e#3 | e#5 | analyzer.py:653 | strongly_inferred |
| guards | state_writers#1 | for_loop | analyzer.py:658 | observed |
| flows_to | state_writers#1 | sid#5 | analyzer.py:658 | observed |
| flows_to | state_writers#1 | writers#1 | analyzer.py:658 | observed |
| guards | writers#1 | branch | analyzer.py:659 | observed |
| guards | sid#5 | branch | analyzer.py:659 | observed |
| guards | nodes#3 | branch | analyzer.py:659 | observed |
| flows_to | findings#3 | expr@660 | analyzer.py:660 | observed |
| flows_to | nodes#3 | expr@660 | analyzer.py:661 | observed |
| flows_to | sid#5 | expr@660 | analyzer.py:661 | observed |
| flows_to | writers#1 | expr@660 | analyzer.py:661 | observed |
| phi_input | sid#5 | sid#6 | analyzer.py:658 | strongly_inferred |
| phi_input | sid#4 | sid#6 | analyzer.py:658 | strongly_inferred |
| phi_input | writers#1 | writers#2 | analyzer.py:658 | strongly_inferred |
| phi_input | writers:undefined | writers#2 | analyzer.py:658 | unresolved |
| guards | shapes#1 | for_loop | analyzer.py:666 | observed |
| flows_to | shapes#1 | shape#1 | analyzer.py:666 | observed |
| flows_to | shapes#1 | funcs#1 | analyzer.py:666 | observed |
| guards | funcs#1 | branch | analyzer.py:667 | observed |
| flows_to | findings#3 | expr@668 | analyzer.py:668 | observed |
| flows_to | funcs#1 | expr@668 | analyzer.py:668 | observed |
| phi_input | funcs#1 | funcs#2 | analyzer.py:666 | strongly_inferred |
| phi_input | funcs:undefined | funcs#2 | analyzer.py:666 | unresolved |
| phi_input | shape#1 | shape#2 | analyzer.py:666 | strongly_inferred |
| phi_input | shape:undefined | shape#2 | analyzer.py:666 | unresolved |
| guards | function_features#1 | for_loop | analyzer.py:673 | observed |
| flows_to | function_features#1 | nid#8 | analyzer.py:673 | observed |
| flows_to | function_features#1 | feat#1 | analyzer.py:673 | observed |
| flows_to | sig_groups#1 | expr@674 | analyzer.py:674 | observed |
| flows_to | feat#1 | expr@674 | analyzer.py:674 | observed |
| flows_to | nid#8 | expr@674 | analyzer.py:674 | observed |
| phi_input | feat#1 | feat#2 | analyzer.py:673 | strongly_inferred |
| phi_input | feat:undefined | feat#2 | analyzer.py:673 | unresolved |
| phi_input | nid#7 | nid#9 | analyzer.py:673 | strongly_inferred |
| phi_input | nid#8 | nid#9 | analyzer.py:673 | strongly_inferred |
| guards | sig_groups#1 | for_loop | analyzer.py:676 | observed |
| flows_to | sig_groups#1 | sig#3 | analyzer.py:676 | observed |
| flows_to | sig_groups#1 | members#1 | analyzer.py:676 | observed |
| guards | members#1 | branch | analyzer.py:677 | observed |
| flows_to | motif_clusters#1 | expr@679 | analyzer.py:679 | observed |
| flows_to | sig#3 | expr@679 | analyzer.py:679 | observed |
| flows_to | members#1 | expr@679 | analyzer.py:679 | observed |
| flows_to | members#1 | expr@679 | analyzer.py:680 | observed |
| phi_input | members#1 | members#2 | analyzer.py:676 | strongly_inferred |
| phi_input | members:undefined | members#2 | analyzer.py:676 | unresolved |
| phi_input | sig#2 | sig#4 | analyzer.py:676 | strongly_inferred |
| phi_input | sig#3 | sig#4 | analyzer.py:676 | strongly_inferred |
| flows_to | nodes#3 | type_counts#1 | analyzer.py:683 | observed |
| flows_to | edges#3 | edge_counts#1 | analyzer.py:684 | observed |
| flows_to | findings#3 | category_counts#1 | analyzer.py:685 | 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 | 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:132 |
| 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 |
| _preload_reused_graph | analyzer:binding:GLOBAL_RECOMPUTED_FINDINGS | analyzer.py:330 |
| analyze | analyzer:binding:DATA_EDGE_TYPES | analyzer.py:696 |
| analyze | analyzer:binding:SCHEMA | analyzer.py:709 |
| analyze | analyzer:binding:ANALYZER_VERSION | analyzer.py:710 |
| 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: | 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: | 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 | _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 | 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 | 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 | 2 | 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 | 14 | name-independent coarse structural feature signature |
| motif_coarse_ef5db5e5ba38 | 3 | name-independent coarse structural feature signature |
| motif_coarse_f373ee2a1d21 | 9 | 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 | 8 | name-independent coarse structural feature signature |
Per-file SHA-256
| Path | Bytes | SHA-256 |
|---|---|---|
| __init__.py | 22 | 88f95809c233bb35… |
| analyzer.py | 39998 | 755bb1983d3e2bbf… |
| cache.py | 12186 | 5b39b5cab73a3429… |
| cli.py | 12199 | 69e0df9149881b3e… |
| dataflow.py | 39188 | 60b2e9a2d349647c… |
| diff_report.py | 11137 | 8a1f5015f131f580… |
| git_adapter.py | 6707 | cc64d3adcf9b77ce… |
| impact.py | 20500 | 3221edce2184d0bd… |
| incremental.py | 12501 | 7e00463ffa65f910… |
| pr_review.py | 16350 | c7be8d3504839023… |
| product_ui.py | 31255 | bdce375e16039f76… |
| report.py | 31778 | 82dc411bab501fea… |
| 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