This is an automated email from the ASF dual-hosted git repository.

chaokunyang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/fory-site.git

commit e3ec17c437b5c76fc63c3f76cafa6f44b179ad88
Author: chaokunyang <[email protected]>
AuthorDate: Wed May 27 08:54:12 2026 +0000

    🔄 synced local 'docs/compiler/' with remote 'docs/compiler/'
---
 docs/compiler/generated-code.md | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/docs/compiler/generated-code.md b/docs/compiler/generated-code.md
index 3c9d8899fb..089bf5ae31 100644
--- a/docs/compiler/generated-code.md
+++ b/docs/compiler/generated-code.md
@@ -787,16 +787,26 @@ public sealed partial class Person
 }
 ```
 
-Unions generate `[ForyUnion]` `Union` subclasses with typed case helpers:
+Unions generate `[ForyUnion]` ADTs. Case ID `0` is the unknown-case
+carrier; schema-defined cases use positive `[ForyCase]` IDs. If a case needs
+non-default schema encoding, the generated `[ForyCase]` carries `Type`. Known
+case record names are PascalCase FDL case names; payload types are emitted as
+qualified references when needed to avoid name conflicts.
 
 ```csharp
 [ForyUnion]
-public sealed class Animal : Union
+public abstract partial record Animal
 {
-    public static Animal Dog(Dog value) { ... }
-    public static Animal Cat(Cat value) { ... }
-    public bool IsDog => ...;
-    public Dog DogValue() { ... }
+    private Animal() {}
+
+    [ForyCase(0)]
+    public sealed partial record UnknownCase(int CaseId, object? Value) : 
Animal;
+
+    [ForyCase(1)]
+    public sealed partial record Dog(global::addressbook.Dog Value) : Animal;
+
+    [ForyCase(2)]
+    public sealed partial record Cat(global::addressbook.Cat Value) : Animal;
 }
 ```
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to