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 analysis;
30pub mod builtin_names;
31pub mod check_pipeline;
32pub mod checker;
33pub mod context_checks;
34pub mod contract;
35pub mod expr_types;
36pub mod firstparty;
37pub mod hints;
38pub mod icu;
39pub mod index;
40pub mod kernel_methods;
41pub mod locals;
42pub mod project_model;
43pub mod requirements;
44pub mod resolver;
45pub mod schema_registry;
46pub mod secrets;
47pub mod store_ops;
48pub mod symbols;
49pub mod test_suites;
50pub mod websocket;
51pub mod wire;
52pub mod wire_default;
53
54pub use firstparty::Platform;