Installation
[]
= "1"
Example
A lexically-scoped symbol table generic over the binding. A name resolves to the nearest enclosing definition; inner scopes shadow.
use ;
use Interner;
use Span;
let mut names = new;
let x = names.intern;
let y = names.intern;
let mut table: = new;
table.define;
table.enter_scope;
table.define; // shadows the outer `x`
assert_eq!;
table.exit_scope;
assert_eq!; // outer `x` visible again
// An unresolved reference becomes a diagnostic.
assert!;
let diag = unresolved_name;
assert_eq!;
Status
This is v1.0.0: the public API is stable and frozen under SemVer. The lexically-scoped SymbolTable and the name-error diagnostics are complete and catalogued in docs/API.md.
Contributing
See dev/DIRECTIVES.md for engineering standards and the definition of done. Before a PR: cargo fmt --all, cargo clippy --all-targets --all-features -- -D warnings, and cargo test --all-features must be clean.