Twin of the codeanalyzer-python L4 port-layer audit (filed today; found during python-sdk#270 verb validation). On the cants L4 sample in python-sdk (tests/resources/cpg/ts-a4.json):
stmt → formal_out already emitted (3/3 formal_out ports wired) — ahead of canpy here.
formal_in ports: 2, 0 with outgoing ddg — parameter flow entering via param_in dead-ends at the port (the @entry → stmt var edges duplicate the role).
- No
stmt → actual_in or actual_out → stmt edges observed — argument-binding and return-value-binding at call sites are missing, so cross-callable flows_to witnesses are port-to-port segments only.
Caveat: the committed sample is small (one call site); please verify the absence classes on a larger -a 4 corpus before scoping — the canpy audit used a 758-callable corpus and the pattern there was categorical (zero port-touching ddg edges of any class).
Missing edge checklist (same as canpy, minus the return side already done):
Also worth checking whether TS call vertices sit on the CFG spine (canpy's are 100% cfg-orphaned).
Twin of the codeanalyzer-python L4 port-layer audit (filed today; found during python-sdk#270 verb validation). On the cants L4 sample in python-sdk (
tests/resources/cpg/ts-a4.json):stmt → formal_outalready emitted (3/3 formal_out ports wired) — ahead of canpy here.formal_inports: 2, 0 with outgoing ddg — parameter flow entering viaparam_indead-ends at the port (the@entry → stmtvar edges duplicate the role).stmt → actual_inoractual_out → stmtedges observed — argument-binding and return-value-binding at call sites are missing, so cross-callableflows_towitnesses are port-to-port segments only.Caveat: the committed sample is small (one call site); please verify the absence classes on a larger
-a 4corpus before scoping — the canpy audit used a 758-callable corpus and the pattern there was categorical (zero port-touching ddg edges of any class).Missing edge checklist (same as canpy, minus the return side already done):
def stmt → actual_in:kactual_out → use stmtformal_in:k → first-use stmtsAlso worth checking whether TS
callvertices sit on the CFG spine (canpy's are 100% cfg-orphaned).