Skip to content

[Swift] Reconnect cross-file extension members to their owner #112

Description

@samchon

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions