Skip to main content

Module index

Module index 

Expand description

v0.25: the project-wide binding index (ADR 0053).

RefSink collects use→def edges at the resolution sites themselves — the resolver’s reference walk, the checker’s capability/service call dispatch, and the project driver’s clause wiring — mirroring v0.24’s ErrorSink collection-point pattern. The project pass then qualifies bare names per unit and assembles a ProjectIndex: every in-scope symbol’s definition site plus all of its reference sites, binding-correct (never name-matched).

In-scope symbol kinds this increment: top-level types, free fns, capabilities, services, agents, and providers. Instance methods, record fields, capability op names, and local bindings are deferred (no edges are recorded for them).

Structs§

CallEdge
v0.34 (ADR 0067): one resolved caller→callee call edge — a Fn reference (callee) occurring inside a known top-level declaration (caller), at site (the callee-name span, in the caller’s file). The backing data for call hierarchy: incoming calls group edges by callee, outgoing by caller. v0.36 (ADR 0069): Fn and Method callees/callers; op-call and agent-dispatch edges are still absent (those callees aren’t index symbols — the remaining deferred index kinds).
ForeignRef
v0.28 (ADR 0057): one reference to a first-party (bynk.*) symbol. Tokens-only: first-party defs point at synthetic files not on disk, so these sites are never read by definition/rename/workspace-symbol — the v0.25 exclusion of synthetic units from symbols stands untouched.
ImplEdge
v0.35 (ADR 0068): one capability→provider implementation edge — a provides Cap = P clause records a Capability reference (capability) whose enclosing owner is the provider (provider), at site (the capability-name span in the provides clause). The backing data for implementation navigation: implementation on a capability returns its providers’ defs.
IndexBuilder
Assembles the index from per-file declaration walks plus the sink’s edges. Built by the project pass, which alone knows unit membership, uses targets, and which file declares each top-level item.
ProjectIndex
The project-wide binding index: every in-scope symbol’s definition and references, keyed structurally. Built by the v0.24 project pass in analyse mode; empty in build mode.
RefEdge
One recorded use→def edge, in collection-point context.
RefSink
Collection-point sink for use→def edges (the ErrorSink analogue). The pipeline sets the ambient file/namespace before each per-file phase; resolution sites only supply the span and target. A sink left in its default state (no file) discards edges — the single-file entry points resolve without recording.
SiteRef
One occurrence of a symbol: the file (project-relative) and the name-segment span within that file’s analysed snapshot.
SymbolEntry
A symbol’s definition site plus every reference site.
SymbolKey
Structural symbol identity (no DefId plumbing): the defining unit’s qualified name, the declaration kind, and the declared name. Top-level names are unique within a unit, so the key is unambiguous.
SymbolModifiers
v0.28 (ADR 0057): the Bynk-specific semantic-token modifiers recorded on a symbol at assemble time. refined only when a refinement is present — type Age = Int parses as Refined { refinement: None } and is a plain alias, carrying neither; opaque is orthogonal, so opaque B where … carries both. platform_native when the declaring unit is a platform adapter (firstparty::platform_of is Some).

Enums§

SymbolKind
The kind half of a symbol’s structural key.