Skip to main content

Module resolve

Module resolve 

Source
Expand description

Resolution of extracted C# fragments into a graph.

Structs§

DefIndex
Vec<Def> in first-insertion order (partial-class duplicates land in also_in, never as a second Vec entry) plus two lookup indexes over it: qualified_name_to_def (id -> index, every def incl. enum members) and simple_name_to_defs (bare name -> indexes, EVERY def EXCEPT enum members – the asymmetry described in the module header).
ExtCandidate
One bucket slot: which def declares the entry, and the entry itself (the range + generic-argument facts the tier filters on).
MemberLists
The non-method halves of a def’s member surface. methods stays on Def (it IS serialized).
MethodOverloadParams
One method overload’s parameter-descriptor list plus its declaring file.

Functions§

resolve_graph
Resolve C# fragments into a graph. Pure: fragments_by_file is file-walk-ordered (rel, Fragment) pairs. No file I/O beyond the single git rev-parse HEAD shell-out (manifest::git_head) that fills built_at_head – cheap enough to re-run on every devscout map whose C# set changed, and unit-testable without a parser (see this module’s tests, which build Fragment values by hand).
resolve_graph_with_model
The same resolve again, now with the repo’s .csproj project model alongside.
resolve_graph_with_ts
The same resolve, with the TS/TSX half alongside. The caller passes the two halves already split (it reads the tag off each cache entry – graph::AnyFragment), and each half goes to its own resolver.