Skip to content

SymbolSource and SymbolBackend share duplicate method signatures #449

Description

@Firehed

SymbolSource and SymbolBackend both declare childrenOf(NamespaceName): NamespaceContents and search(string, NameKind): list<Symbol> with identical signatures. CompositeSymbolSource implements the former by delegating to the latter, so the duplication is structural — the facade repeats what the backend already defines.

The lookup methods avoid this because SymbolSource splits them per-kind (lookupClassLike, lookupFunction, lookupConstant) while SymbolBackend unifies them as lookup(name, kind). That asymmetry is the design intent; the shared methods are the ones where the facade adds no narrowing.

This likely resolves naturally as the M×N collapse progresses — the build manifest steps are already reshaping both interfaces. If it persists after the baselines are deleted, it deserves a targeted fix (e.g. extracting the shared surface into a parent interface, or having SymbolSource extend SymbolBackend).

This issue was written by AI and reviewed by a human.

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