]> git.lizzy.rs Git - metalua.git/blob - src/samples/types_test.mlua
Merge remote branch 'origin/master'
[metalua.git] / src / samples / types_test.mlua
1 -{ extension "types" }
2 -{ extension "clist" }
3
4 -- Uncomment this to turn typechecking code generation off:
5 -- -{stat: types.enabled=false}
6
7 function sum (x :: table(number)) :: number
8    local acc :: number = 0
9    for i=1, #x do
10       acc = acc + x[i] -- .. 'x' -- converts to string
11    end
12    --acc='bug' -- put a string in a number variable
13    return acc
14 end
15
16 x       = { i for i=1,100 }
17 --x[23] = 'toto' -- string in a number list, sum() will complain
18 y       = sum (x)
19 printf ("sum 1 .. %i = %i", #x, y)