Improved any support, removed C Var args

This commit is contained in:
Krzosa Karol
2022-10-04 14:15:22 +02:00
parent 3c172233f6
commit e23eaf1394
4 changed files with 71 additions and 61 deletions

View File

@@ -1,6 +1,6 @@
VariadicArguments :: (string: *char, args: ..)
pass
VariadicArguments :: (string: *char, args: ..): Any
return args[0]
AnyArguments :: (values: []Any)
for values
@@ -20,7 +20,11 @@ main :: (): int
for values
Assert(it.type == S64)
AnyArguments({a,b})
VariadicArguments("Test", args = {a+b,b})
c := VariadicArguments("Test", args = {a+b,b})
Assert(*(c.data->*S64) == 30)
d := VariadicArguments("Test", {b,a})
Assert(*(d.data->*S64) == b)
e := VariadicArguments("Test", {b,a})
Assert(*(values[0].data->*S64) == 10)
Assert(*(values[1].data->*S64) == 20)