mirror of
https://github.com/safishamsi/graphify.git
synced 2026-08-27 00:36:39 +00:00
These changes are interleaved across engine.py/extract.py by function, so they land as one batch. #2568 (thanks @imagineers-tyler): the 0.9.37 #2552 callback-body fix unioned sibling closures' local names under the shared declaration, so a local in one callback suppressed a real indirect_call in a sibling. Locals are now scoped per body (keyed by body id, via walk_calls' extra_locals). Restore-only, never fabricates; #2552 capture preserved. #2565 (thanks @kskchaitanya1993): Kotlin property initializers — class, top-level, companion, and `by lazy {}` — now seed call extraction, so `val repo = createRepo()` produces a calls edge; literal initializers produce none; FQ calls compose with the #2550 resolver. #2561 (thanks @fakewaffle): Swift receiver typing now handles `@Environment(Store.self)` (whitelisted; @Query/keypath/dotted skipped to avoid a wrong edge) and in-corpus factory bindings via a marked concrete return type; opaque/array/out-of-corpus returns stay unresolved. #2577 (thanks @wilyan09007, PR #2579): the SQL extractor no longer emits a reads_from edge to a CTE name. WITH names are scoped per query (a subquery CTE no longer suppresses an outer real table of the same name), so a CTE no longer mints a bare stub that binds to an unrelated same-named symbol. #2575 (thanks @phudayyy, PR #2574): a dynamic `import('…')` inside a nested function or at module scope now produces an edge, dynamic_import is included in affected, and calls inside nested named functions are collected; a dynamic import already captured as a deferred imports_from is not double-counted. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>