Skip to content
Beskid Platform specification

Beskid

Jump to a Beskid service

Beskid

Jump to a Beskid service

Resolver contract - Examples

Platform spec article

Resolver contract - Examples

Spec standingStandard

Owner
Piotr Mikstacki
Submitter
Piotr Mikstacki

Main.bd calls Output.WriteLine from a dependency unit collected into ModuleIndex:

IdentityExample
ItemIdDense index into merged items (stable for prefetch rows)
SymbolIdInterned key for export
symbolKey (api.json)corelib_mvp::Std::System::IO::Output::WriteLine (exact package prefix from materialized project)
qualifiedNameMay use module-relative display; prefer symbolKey for cross-package links

Workspace find-references on the WriteLine use site must include references in Output.bd when assembly is available.

helper() declared in the entry unit and called from a dependency file:

  • Entry merged resolution assigns helper a registry symbol under the host project_name.
  • Per-unit resolve of the dependency file may assign a different dense ItemId to the same logical import target.
  • IDE reference matching must still succeed via equal SymbolId, not ItemId equality.

Documentation comment:

/// See also @ref(corelib::Std::Console::Esc)

Resolution must locate the target item by exact registry string before falling back to qualifiedName suffix heuristics (doc/refs.rs).

Parameters and other synthetics have ItemInfo.symbol: None. They omit symbolKey in api.json and use ItemId / local identity in IDE queries.

  • compiler/crates/beskid_e2e_tests/fixtures/corelib_mvp/ — assembly-backed document tests
  • compiler/corelib/beskid_corelib/tests/corelib_tests/ — corelib integration surfaces