tsz-binder 0.1.9

TypeScript name binder for the tsz compiler
Documentation
//! TypeScript name binder for the tsz compiler.
//!
//! This crate provides the shared data structures used across binding, checking,
//! control-flow analysis, and language service features:
//! - `Symbol`, `SymbolId`, `SymbolTable`, `SymbolArena`
//! - `FlowNode`, `FlowNodeId`, `FlowNodeArena`
//! - `Scope`, `ScopeId`, `ContainerKind`, `ScopeContext`
//! - `BinderState` - Name resolution and symbol table construction
//! - `LibFile` - Lib file loading for built-in type definitions

mod binding;
pub mod flow;
pub mod lib_loader;
mod modules;
mod nodes;
pub mod scopes;
pub mod state;
mod state_flow_helpers;
mod state_lib_merge;
mod state_resolution;
pub mod symbols;

// Re-export for external consumers.
pub use modules::resolution_debug as module_resolution_debug;

// Re-export core data types at crate root for convenience.
pub use flow::{FlowNode, FlowNodeArena, FlowNodeId, flow_flags};
pub use scopes::{ContainerKind, Scope, ScopeContext, ScopeId};
pub use state::{
    BinderOptions, BinderState, DeclarationArenaMap, FileFeatures, GlobalAugmentation, LibContext,
    ModuleAugmentation, ValidationError,
};
pub use symbols::{Symbol, SymbolArena, SymbolId, SymbolTable, symbol_flags};