plum

#treesitter#compiler#wasm

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

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


958912f — Peter John 2026-10-26T21:44:47+05:30
docs(plans): task B — lowercase true/false literals
Files changed (1) hide show
  1. docs/plans/2026-10-27-zig-errors.md +13 -0
docs/plans/2026-10-27-zig-errors.md CHANGED
@@ -115,3 +115,16 @@ Update the docs, the iteration cheat sheet, highlighting and the LSP method comp
115
115
  - There are no migration hints for obsolete syntax anywhere: `legacySyntaxHint` and its tests are deleted, and removed syntax is an ordinary parse or type error.
116
116
  - E4 migrates every caller and deletes the old syntax outright: Try/Ok/Err, `??`, `? |e|`, tag-union types, payload tags and `.unwrap()`/`.expect()`.
117
117
  - Every hint test listed in E2 (`return_bare_tag_hint`, `elvis_removed_hint`, `tag_union_type_removed_hint`, `try_ok_err_removed_hints`, `fail_with_payload_rejected_hint`) is dropped.
118
+
119
+ ## Task B (user request; runs after E1 and before E2): lowercase `true`/`false` literals
120
+
121
+ - `true`/`false` are keyword literals of the primitive `bool`, which is already wasm i32. `True`/`False` are removed, so a capitalized name is an ordinary identifier. There are no hints.
122
+ - `match` patterns are `true =>` / `false =>`, and exhaustiveness is unchanged.
123
+ - `toStr` and interpolation print `"true"`/`"false"`.
124
+ - Migrate std, examples, the README, embedded Rust test sources, corpus fixtures, highlights, the VS Code grammar and the LSP keywords.
125
+
126
+ Tests:
127
+ - `bool_literals_lowercase`;
128
+ - `bool_match_exhaustive`;
129
+ - `bool_tostr_lowercase`;
130
+ - `capital_True_is_plain_identifier` (unbound name error).