plum

#treesitter#compiler#wasm

git clone https://git.pyrossh.dev/plum

A statically typed, imperative programming language inspired by rust, python


3fc279fPeter John 2026-07-20T12:04:10+05:30
docs: note tail-position match/if return-value gap in Known Gaps
Files changed (1) hide show
  1. README.md +1 -0
README.md CHANGED
@@ -324,5 +324,6 @@ Some things parse and type-check but don't compile to wasm yet — `plum-wasm-co
324
324
  - multi-subject `match` (`match a, b`)
325
325
  - user-defined generics (they type-check but aren't monomorphized) — this also blocks `libs/std`'s actual `Option`/`Result`/`List`/`Map`, which are declared generically
326
326
  - nested constructor patterns inside `match` (`Some(Some(v))`) — a constructor pattern's own sub-patterns must be a bare binding or `_`
327
+ - a function body's final statement being a `match`/`if` whose arms don't all use explicit `return` — the arm values are silently dropped instead of returned, producing invalid wasm rather than a clear error (workaround: always `return` from match/if arms in tail position)
327
328
 
328
329
  `closure` (`|params| body`) exists in `grammar.js` but isn't wired into any reachable rule yet, so it doesn't actually parse in context.