Skip to main content

Crate bock_air

Crate bock_air 

Source
Expand description

Bock AIR — Bock Intermediate Representation node definitions.

All four AIR layers (S-AIR, T-AIR, C-AIR, TR-AIR) share the same AIRNode / NodeKind types. Later compiler passes progressively fill in the optional layer slots (type_info, ownership, context, target).

§Module layout

Re-exports§

pub use compose_context::compose_context;
pub use context::interpret_context;
pub use lower::lower_module;
pub use node::AIRNode;
pub use node::AirArg;
pub use node::AirHandlerPair;
pub use node::AirInterpolationPart;
pub use node::AirMapEntry;
pub use node::AirRecordField;
pub use node::AirRecordPatternField;
pub use node::EnumVariantPayload;
pub use node::NodeId;
pub use node::NodeIdGen;
pub use node::NodeKind;
pub use node::ResultVariant;
pub use registry::EnumVariantExport;
pub use registry::ExportDetail;
pub use registry::ExportKind;
pub use registry::ExportedSymbol;
pub use registry::ModuleExports;
pub use registry::ModuleId;
pub use registry::ModuleRegistry;
pub use registry::RegistryError;
pub use resolve::resolve_names;
pub use resolve::resolve_names_with_registry;
pub use resolve::Binding;
pub use resolve::NameKind;
pub use resolve::ResolvedName;
pub use resolve::Scope;
pub use resolve::SymbolTable;
pub use scope::build_scope_tree;
pub use scope::Binding as ScopeBinding;
pub use scope::Scope as ScopeNode;
pub use scope::ScopeId;
pub use scope::ScopeTree;
pub use stubs::security_level_rank;
pub use stubs::BehavioralModifier;
pub use stubs::ByteSize;
pub use stubs::Capability;
pub use stubs::ContextBlock;
pub use stubs::ContextMarker;
pub use stubs::Duration;
pub use stubs::EffectRef;
pub use stubs::OwnershipInfo;
pub use stubs::OwnershipState;
pub use stubs::PerformanceBudget;
pub use stubs::SecurityInfo;
pub use stubs::SizeUnit;
pub use stubs::TargetInfo;
pub use stubs::TimeUnit;
pub use stubs::TypeInfo;
pub use stubs::TypeRef;
pub use stubs::Value;
pub use stubs::KNOWN_CAPABILITIES;
pub use stubs::SECURITY_LEVELS;
pub use validate_context::validate_context;
pub use validate_context::StrictnessLevel;
pub use verify_capabilities::verify_capabilities;
pub use verify_capabilities::CompletenessReport;
pub use verify_capabilities::VerificationMode;
pub use visitor::Visitor;

Modules§

compose_context
Context composition pass — inherits module context to declarations, computes PII-tainted type sets, and detects security violations across module boundaries.
context
Context annotation interpreter — transforms parsed AST annotations into structured ContextBlock data attached to AIR nodes.
lower
AST to S-AIR lowering pass.
node
AIR node definitions — the unified intermediate representation.
prelude_vocab
Prelude vocabulary — names that are always in scope without an explicit use. Mirrors the seed lists in crate::resolve::SymbolTable::seed_prelude.
registry
Cross-file module registry for the Bock compiler.
resolve
Name resolution pass — S-AIR layer.
scope
Scope analysis pass — S-AIR layer.
stubs
Stub layer-slot types populated by later compiler passes.
validate_context
Context validation pass — validates context annotations across the AIR tree.
verify_capabilities
Capability verification pass — the final C-AIR pass.
visitor
Visitor trait for AIR traversal.