35 lines
790 B
Core
35 lines
790 B
Core
|
|
VariadicArguments :: (string: *char, args: ..): Any
|
|
return args[0]
|
|
|
|
AnyArguments :: (values: []Any)
|
|
for values
|
|
Assert(it.type == S64)
|
|
Assert(*(values[0].data->*S64) == 10)
|
|
Assert(*(values[1].data->*S64) == 20)
|
|
|
|
// printf :: #foreign (string: *char, args: ..): int
|
|
|
|
main :: (): int
|
|
a := 10
|
|
b := 20
|
|
values := []Any{a, b}
|
|
|
|
// printf("Test %d", {a})
|
|
|
|
for values
|
|
Assert(it.type == S64)
|
|
AnyArguments({a,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)
|
|
|
|
// @todo: maybe this is better? Assert(*cast(*S64)values[0].data == 10)
|
|
|
|
|
|
return 0 |