You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
L2 does not resolve call sites inside closures #17
Describe the bug
L2 never resolves call sites inside closures (function literals). CallGraphBuilder.Build (internal/semantic_analysis/call_graph.go) walks top-level functions and methods only, not InnerCallables, so every call node inside a closure keeps callee: null and produces no call_graph edge. On testdata/chi, all 245 closure call nodes are unresolved. This predates the L3 branch (main behaves the same).
To Reproduce
cango -i testdata/chi -a 2 -o /tmp/out
Find any callable under another callable's callables{} (a closure_N) and inspect its body call nodes.
Every callee is null, and no call_graph edge has a closure as src.
Expected behavior
Call sites inside closures resolve like any other call site: callee is the callee's id (in-project or @external), and call_graph has an edge from the closure's callable id.
Logs
Not applicable: the output is valid; the facts are missing.
Additional context
Fix needs closures to carry their declaring file (Path) so the dedup key (Path, Signature, callee) and emission's (Signature, SourcePath) resolution keep working.
Matters before L4: interprocedural edges out of closures (handlers, callbacks, goroutines) depend on it.
Activity
Go L4 interprocedural SDG, VTA dispatch and library stand-ins (#36)