1# test calling viper functions with different number of args
2
3
4@micropython.viper
5def f0():
6    print(0)
7
8
9f0()
10
11
12@micropython.viper
13def f1(x1: int):
14    print(x1)
15
16
17f1(1)
18
19
20@micropython.viper
21def f2(x1: int, x2: int):
22    print(x1, x2)
23
24
25f2(1, 2)
26
27
28@micropython.viper
29def f3(x1: int, x2: int, x3: int):
30    print(x1, x2, x3)
31
32
33f3(1, 2, 3)
34
35
36@micropython.viper
37def f4(x1: int, x2: int, x3: int, x4: int):
38    print(x1, x2, x3, x4)
39
40
41f4(1, 2, 3, 4)
42
43
44@micropython.viper
45def f5(x1: int, x2: int, x3: int, x4: int, x5: int):
46    print(x1, x2, x3, x4, x5)
47
48
49f5(1, 2, 3, 4, 5)
50
51
52@micropython.viper
53def f6(x1: int, x2: int, x3: int, x4: int, x5: int, x6: int):
54    print(x1, x2, x3, x4, x5, x6)
55
56
57f6(1, 2, 3, 4, 5, 6)
58
59# test compiling *x, **x, * args (currently unsupported at runtime)
60@micropython.viper
61def f(*x, **y):
62    pass
63
64
65@micropython.viper
66def f(*):
67    pass
68