Problem
A Swift extension declared in a different file keeps a qualified name such as Box.doubled, but static graph construction cannot reconnect it to the Box node. Swift owner reconnection is file-local; only C++ currently receives a project-wide reconnect pass. The method therefore has no ownerId and no Box -> doubled contains edge.
Reproduction
Box.swift: struct Box {}
Box+Ext.swift: extension Box { func doubled() -> Int { 2 } }
The current same-file extension regression passes, masking the cross-file loss.
Acceptance
- Reconnect transparent Swift extension owners across the full project graph.
- Preserve qualified identities and emit the semantic
contains edge.
- Keep ambiguous or absent owners unresolved rather than guessing.
- Add a two-file end-to-end static graph regression.
Discovered in independent Review Round 4 for #97.
Problem
A Swift extension declared in a different file keeps a qualified name such as
Box.doubled, but static graph construction cannot reconnect it to theBoxnode. Swift owner reconnection is file-local; only C++ currently receives a project-wide reconnect pass. The method therefore has noownerIdand noBox -> doubledcontainsedge.Reproduction
Box.swift:struct Box {}Box+Ext.swift:extension Box { func doubled() -> Int { 2 } }The current same-file extension regression passes, masking the cross-file loss.
Acceptance
containsedge.Discovered in independent Review Round 4 for #97.