diff options
Diffstat (limited to 'docs/type_system/union.md')
| -rw-r--r-- | docs/type_system/union.md | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/docs/type_system/union.md b/docs/type_system/union.md index 2572591..f4b0b04 100644 --- a/docs/type_system/union.md +++ b/docs/type_system/union.md @@ -3,7 +3,7 @@ --- ```text -Union[CONTAINER | TRANSIENT | TRANSIENT_GENERIC] Collection[VAR_TREE_LIST; TYPE.SYMBOL]] +Union[TAG | TRANSIENT] Collection[VAR_TREE_LIST; TYPE.SYMBOL]] ``` ## Type Body Object Definitions @@ -17,7 +17,9 @@ typedef struct { # Alias ```text -Tag[Collection[VAR_TREE_LIST; TYPE.SYMBOL]] `alias Union[[CONTAINER] Collection[VAR_TREE_LIST; TYPE.SYMBOL]] +Tag[Collection[VAR_TREE_LIST; TYPE.SYMBOL]] `alias Union[[TAG] Collection[VAR_TREE_LIST; TYPE.SYMBOL]] + +Transient[Collection[VAR_TREE_LIST; TYPE.SYMBOL]] `alias Union[[TRANSIENT] Collection[VAR_TREE_LIST; TYPE.SYMBOL]] ``` ## Tag Example @@ -37,22 +39,16 @@ u : Tag[I64.a; I64.b; I64.c] $ (.c : 5) # Transient Unions +Return multiple types from a function + Can only be retuned from functions and operations. The inner value must be moved out ## Alias ```text -Transient_generic[Generic.T] `alias Union[[TRANSIENT_GENERIC] Generic.T.value] - -Result[Generic.T] `alias Union[[TRANSIENT] Generic.T.value; Error.error] - -Option[Generic.T] `alias Union[[TRANSIENT] Generic.T.value; Void.null] - -Next[Generic.T] `alias Union[[TRANSIENT] Generic.T.value; Void.done] - -Next_result[Generic.T] `alias Union[[TRANSIENT] Generic.T.value; Error.error; Void.done] +Result[Generic.T] `alias Transient[Generic.T.value; Void.null; Error.error] -Next_option[Generic.T] `alias Union[[TRANSIENT] Generic.T.value; Void.null; Void.done] +Iteration[Generic.T] `alias Transient[Generic.T.value; Void.null; Void.done; Error.error] ``` ## Default Operation |
