1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
|
-- check global functions
TEST [[
local mod = {}
local <!function fl0()
end!>
---comment
local function fl1()
end
local function fl2()
end
function FG0()
end
mod.fl0 = fl0
mod.fl1 = fl1
return mod
]]
TEST [[
local mod = {}
local function flp0(<!p!>)
print(p)
end
---comment
local function flp1(<!p!>)
print(p)
end
---comment
---@param p any
local function flp2(p)
print(p)
end
mod.flp0 = flp0
mod.flp1 = flp1
return mod
]]
TEST [[
local mod = {}
local function flpp0(<!p0!>, <!p1!>)
print(p0, p1)
end
---comment
local function flpp1(<!p0!>, <!p1!>)
print(p0, p1)
end
---comment
---@param p0 any
local function flpp2(p0, <!p1!>)
print(p0, p1)
end
---comment
---@param p0 any
---@param p1 any
local function flpp3(p0, p1)
print(p0, p1)
end
mod.flpp0 = flpp0
mod.flpp1 = flpp1
mod.flpp2 = flpp2
mod.flpp3 = flpp3
return mod
]]
TEST [[
local mod = {}
local function flr0()
return <!0!>
end
---comment
local function flr1()
return <!0!>
end
---comment
---@return integer
local function flr2()
return 0
end
mod.flr0 = flr0
mod.flr1 = flr1
mod.flr2 = flr2
return mod
]]
TEST [[
local mod = {}
local function flrr0()
return <!0!>, <!1!>
end
---comment
local function flrr1()
return <!0!>, <!1!>
end
---comment
---@return integer
local function flrr2()
return 0, <!1!>
end
---comment
---@return integer
---@return integer
local function flrr3()
return 0, 1
end
mod.flrr0 = flrr0
mod.flrr1 = flrr1
mod.flrr2 = flrr2
return mod
]]
TEST [[
local mod = {}
local function flpr0(<!p!>)
print(p)
return <!0!>
end
---comment
local function flpr1(<!p!>)
print(p)
return <!0!>
end
---comment
---@param p any
local function flpr2(p)
print(p)
return <!0!>
end
---comment
---@return integer
local function flpr3(<!p!>)
print(p)
return 0
end
---comment
---@param p any
---@return integer
local function flpr4(p)
print(p)
return 0
end
mod.flpr0 = flpr0
mod.flpr1 = flpr1
mod.flpr2 = flpr2
mod.flpr3 = flpr3
mod.flpr4 = flpr4
return mod
]]
|