Add support for destructuring def

This commit introduces the `DefDestructure` bound kind and modifies the
binder, analyzer, type checker, and VM to support destructuring in `def`
statements. This allows for pattern matching on the right-hand side of a
`def` to bind multiple variables.

The parser has been updated to accept patterns in `def` statements. The
binder now handles `UntypedKind::Def` with a `target` pattern, rather
than a simple `name`. This enables destructuring.

The `Gemini.md` documentation has been updated to include a new rule for
incremental development.
This commit is contained in:
Michael Schimmel
2026-02-24 08:40:45 +01:00
parent eeb6621280
commit 252b725677
13 changed files with 290 additions and 117 deletions
+1 -1
View File
@@ -71,7 +71,7 @@ pub enum UntypedKind {
else_br: Option<Box<Node<UntypedKind>>>,
},
Def {
name: Symbol,
target: Box<Node<UntypedKind>>,
value: Box<Node<UntypedKind>>,
},
Assign {