feat(xatu): construct scope graphs and add parser debug output #91
Reference in New Issue
Block a user
Delete Branch "feat/xatu-scope-graph"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
parser.rsand store the graph inast::ParsedFile.xatu --debugto dump parser representations and parse errors as deterministic JSON without lint diagnostics.Construction follows the lexical subset of Néron et al., A Theory of Name Resolution (2015).
Initial coverage targets
src/dotfiles/registry.nix.Unsupported binding constructs remain outside the coverage guarantee.
This change adds no resolver, dependency analysis, ordering rule, or automatic reordering.
Validation
bazel test //src/xatu:all— all three targets pass.cargo check -p xatu— passes.cargo clippy -p xatu -- -D warnings— passes.nix run .#fix— passes.--debug src/dotfiles/registry.nix— no parse errors; 74 scopes, 93 declarations, and 171 references.Notes
The CLI skips symlinks, including Bazel runfiles.
Tests copy fixture inputs into
TEST_TMPDIR;AGENTS.mdrecords this constraint.The README documents coverage limits, debug exit codes, and expected-output regeneration.
Superseded by two focused PRs: #92 adds debug output; #93 adds scope-graph construction on top of #92. Neither replacement rewrites this review history.
Pull request closed