Skip to main content

Module ast

Module ast 

Source

Re-exports§

pub use source_map::SourceMap;

Modules§

source_map

Structs§

MatchArm
Param
A parameter: name:type
ParseFailRef
Identity of the parse error that disabled type-checking for a function. Carried on Program.parse_failed_fns so verify can render hints like “definition failed to parse - see ILO-P009 at line 12” without re-reading the parse-error list.
Program
A complete program is a list of declarations
Span
Byte range within source text.
Spanned
Wraps a node with its source span. Transparent to serde (serializes as inner node only).
Variant
A variant in a sum-type declaration. Circle(n) → Variant { name: “circle”, payload: Some(Type::Number) } red → Variant { name: “red”, payload: None }

Enums§

BinOp
Bound
Bound on a generic type variable.
Decl
Top-level declarations
DeferKind
Whether a defer fires on all exits or only on error exits.
Expr
Expressions
Literal
Pattern
Stmt
Statements
Type
Types in idea9 — single-char base types, composable
UnaryOp
UnwrapMode
Auto-unwrap mode on Expr::Call. See Expr::Call for full semantics.
UsePredicate
Compile-time predicate for conditional useuse ?wasm "a.ilo" : "b.ilo".

Functions§

all_builtin_aliases
Iterate over all (long_name, short_name) builtin alias pairs. Used by the parser to mirror arity/HOF metadata onto long-form names.
desugar_dot_var_index
Desugar xs.i where i is a variable in scope into at xs i.
resolve_alias
If name is a long-form alias, return the canonical short form. Otherwise return None.
resolve_aliases
Resolve aliases in all Call expressions throughout a program. Mutates function names in-place so downstream passes see only canonical names.