@neocompose/cli 0.75.2 → 0.76.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,47 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.76.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 80ea491: Instances share a member's declared value whenever it cannot change: the
8
+ member is `readonly` or Immutable, its declaration reads neither `this` nor a
9
+ constructor argument, and nothing in the value is writable. A readonly literal
10
+ is shared under any storage. A readonly initializer or collection is still
11
+ built per instance, since its value is fixed only at construction. An
12
+ Immutable value holding a writable member is no longer shared.
13
+
14
+ ## 0.76.0
15
+
16
+ ### Minor Changes
17
+
18
+ - b9d4b99: Support local class values as instance references in constructor arguments and
19
+ other initializer expressions. Compose nested local member and collection values
20
+ inside constructor-backed initializers without copying referenced instances or
21
+ losing concrete subclass types. Report unsupported local uses at their source
22
+ location in the editor and CLI.
23
+ - a4b7721: `readonly` is now init-only, as in C#, and independent of storage. Field
24
+ initializers, constructors, object initializer blocks, and authored values set
25
+ a readonly member; nothing writes it after construction. It is valid on Save,
26
+ Session, Immutable, and User classes, but not with Writable storage. It is
27
+ shallow: a readonly collection's membership is fixed while its entries keep
28
+ their own mutability. Runtime construction can no longer set Immutable members,
29
+ and generated C# factories omit them. An Immutable member whose declaration,
30
+ including every row it owns, reads neither `this` nor a constructor argument
31
+ is a constant that every instance shares. Any other Immutable member is
32
+ evaluated per instance from its declared initializer, with its own `this` and
33
+ constructor arguments. Tile placements can no longer set NeoTile's class-level
34
+ `Name`, `Sprite`, or `SmartTile`. Exports move to schema 42, so Unity
35
+ needs SDK 0.66.0.
36
+
37
+ ### Patch Changes
38
+
39
+ - a4b7721: An object initializer block in a NeoScript body now settles a required member,
40
+ as P49 specifies: `new Folder() { Children = [] }` compiles when `Children` has
41
+ no default. Such an entry is evaluated with construction, before the block's
42
+ other entries assign in source order. A construction that leaves one unset
43
+ names each missing member.
44
+
3
45
  ## 0.75.2
4
46
 
5
47
  ### Patch Changes