constructors on heap, consuming match, move modifier in reference expression, .bring. keyword to return from block, some fixes

This commit is contained in:
ProgramSnail 2023-05-20 20:18:49 +03:00
parent 2556efcaba
commit 8a84cfff70
12 changed files with 128 additions and 34 deletions

View file

@ -1,8 +1,9 @@
namespace Employee {
decl gen_employee : Unit -> Employee
def gen_employee = {
var x = $@Complex & 11.3 & 15.87 // construct on heap
return
$Employee
$Employee // construct on stack
& name = "John"
& role =
($Manager

View file

@ -1,6 +1,7 @@
decl fruit_cost : Fruit -> Int
def fruit_cost : fruit = {
return (match fruit with
var fruit_copy = fruit
return (match <- fruit_copy with // consuming match
| $Banana -> 11
| $Apple | $Orange -> 7)
}

View file

@ -142,5 +142,5 @@ def func : s = {
exec main {
for i in (,0 ,1 ,2 ,3) do func: "abacaba"
; print: ({ return read: })
; print: ({ bring read: })
}