bynk_check/lib.rs
1//! Bynk's semantic-analysis layer — the crate between `bynk-syntax` and the
2//! emitter.
3//!
4//! Holds name resolution (`resolver`), type checking (`checker`), the registries
5//! the checker dispatches and the LSP reads (`kernel_methods`, `builtin_names`),
6//! the first-party embedded sources (`firstparty`), actor analysis (`actors`),
7//! and the **captured analysis tables** written during resolution/checking:
8//! the binding `index`, inlay `hints`, `expr_types`, and `locals`. These tables
9//! are produced here and *queried* by the IDE layer (`bynk-ide`, a later slice):
10//! captured tables live in `bynk-check`, queries live above it (ADR 0102, and
11//! the crate-decomposition track's check↔IDE seam).
12//!
13//! Extracted from `bynkc` as slice 3 of the crate-decomposition track. Behaviour
14//! is unchanged; `bynkc` depends on this crate and re-exports its modules so its
15//! public API and the emitter/project layers above are untouched.
16//!
17//! P4.1 (#1115) added this crate's first project-level orchestration:
18//! `project_model` (discovery→parse→group→resolve, shared with `bynk-emit`'s
19//! `run_checks`), `check_pipeline` (the per-file resolve+check core, also
20//! shared), and `analysis` (`ProjectAnalysis` and the new
21//! `analyse_project` entry point `bynk-ide` will call once P4.2 repoints it).
22//! `context_checks` — the per-file context/capability/provider/service/agent
23//! validation, previously `bynk-emit`'s `validate.rs` — moved here in the
24//! same slice, for the same reason: `project_model`'s and `check_pipeline`'s
25//! shared pipeline needs it, and duplicating it into a second copy is exactly
26//! what this crate's extraction discipline exists to avoid.
27
28pub mod actors;
29pub mod agent_state;
30pub mod analysis;
31pub mod assets;
32pub mod ast_text;
33pub mod builtin_names;
34pub mod check_pipeline;
35pub mod checker;
36pub mod context_checks;
37pub mod contract;
38pub mod embeds;
39pub mod exports;
40pub mod expr_types;
41pub mod firstparty;
42pub mod hints;
43pub mod icu;
44pub mod index;
45pub mod kernel_methods;
46pub mod locals;
47pub mod narrowing;
48pub mod packages;
49pub mod project_model;
50pub mod recovery;
51pub mod requirements;
52pub mod resolver;
53pub mod schema_registry;
54#[cfg(test)]
55mod scope_tests;
56pub mod secrets;
57pub mod shadow_uses;
58pub mod stability;
59pub mod store_ops;
60pub mod store_write;
61pub mod symbols;
62pub mod test_env;
63pub mod test_suites;
64#[cfg(test)]
65pub(crate) mod testkit;
66pub mod unit_signature;
67pub mod websocket;
68pub mod wire;
69pub mod wire_default;
70pub mod wire_format;
71pub mod worker_bindings;
72
73pub use firstparty::Platform;