@neocompose/cli 0.34.2 → 0.35.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,49 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.35.1] - 2026-08-19
4
+
5
+ ### Fixed
6
+
7
+ - Treat `Partial<T>` values as sparse deltas throughout lowering and emission,
8
+ without invoking or reconstructing `T`'s required constructor.
9
+ - Materialize complete Unity defaults for template-less image and audio
10
+ registry entries instead of writing an invalid template override shape.
11
+ - Keep declarations inside variant delegate closures out of the global-child
12
+ registry, so separate `initialize` and `apply` closures may reuse local names.
13
+
14
+ ## [0.35.0] - 2026-08-19
15
+
16
+ ### Added
17
+
18
+ - P72 expression bodies: write `=> expr;` wherever a body is a single
19
+ expression — getter-only properties (`bool HasVisited => this.Count > 0;`),
20
+ an accessor inside a property block (`get => ...;`, `set(int value) => ...;`),
21
+ functions (`bool Ready(int level) => this.Level >= level;`), and lambdas
22
+ (`(x) => x * 2`). It is pure sugar: the desugared block compiles to the same
23
+ instruction stream, and diagnostics point at the authored expression. In a
24
+ void context the expression is a statement, so it must call or assign; an
25
+ expression whose value would be discarded is refused with a diagnostic that
26
+ names the block body as the fix.
27
+ - The `=>` reads as an expression body only where it directly follows a member
28
+ name or a parameter list's `)`, so a NeoFlow destination arrow after an `=`
29
+ initializer (`override Trigger Trigger = new(...) => Welcome;`) is unchanged.
30
+
31
+ ### Changed
32
+
33
+ - `neo pull` and `neo push` canonicalize a stored body to `=> expr;` when its
34
+ authored spelling is exactly one `return` statement that fits on one line;
35
+ every other body, and every setter, re-emits as a block. A push preserves the
36
+ form already on disk for members it did not otherwise rewrite, so authoring a
37
+ one-line getter in longhand stays byte-identical through a push.
38
+
39
+ ### Fixed
40
+
41
+ - VS Code highlighting no longer claims the identifier after every `=>` as a
42
+ NeoFlow destination. The destination scope now requires the NeoFlow shape —
43
+ an arrow after `)`, a single non-keyword identifier, then `;` — so calls,
44
+ `this.` chains, types, and `get`/`set` keywords inside expression bodies keep
45
+ their own scopes.
46
+
3
47
  ## [0.34.2] - 2026-08-19
4
48
 
5
49
  ### Fixed