Expand description
Expression-level static analysis — a port of the reference
implementation’s infer.ts: type inference, assignability (§3.18,
strict S ⊑ T), the absence discipline (§4.10) with its two narrowing
rules, and the match static checks (§4.7). Inference is
conservative: a form whose type cannot be determined yields unknown
(rt None) and suppresses downstream judgments rather than guessing.
Structs§
Enums§
- StdRet
- the return type of a std function, by shape
Constants§
- STD
- the std functions (§13.1: names not listed do not exist): name, arity, return
Functions§
- apply_
guards - check_
expr - guards_
of - has_
null - infer
- js_str
- js_
typeof - make_
ctx - member_
ty - mk_
union - named
- num_
kind - path_
key - prim
- require_
val - resolve_
in - resolve_
name - std_
names - the std function names, in table order (completion)
- std_
path - tag
- try_
resolve - type_
text - tyv
- unk