@@ -17,27 +17,39 @@ local function asFunction(source)
1717 if arg .type == ' self' then
1818 goto CONTINUE
1919 end
20- local name = arg .name or guide .getKeyName (arg )
21- if name then
22- local argNode = vm .compileNode (arg )
23- local optional
24- if argNode :isOptional () then
25- optional = true
26- argNode = argNode :copy ()
27- argNode :removeOptional ()
20+ if arg .type == ' ...' then
21+ -- Lua 5.5: check for named vararg (...args)
22+ if arg .name then
23+ local varargName = guide .getKeyName (arg .name )
24+ args [# args + 1 ] = (' %s%s: %s' ):format (
25+ ' ...' ,
26+ varargName ,
27+ vm .getInfer (arg ):view (guide .getUri (source ), ' any' )
28+ )
29+ else
30+ args [# args + 1 ] = (' %s%s' ):format (
31+ ' ...' ,
32+ vm .getInfer (arg ):view (guide .getUri (source ), ' any' )
33+ )
2834 end
29- args [# args + 1 ] = (' %s%s: %s' ):format (
30- name ,
31- optional and ' ?' or ' ' ,
32- vm .getInfer (argNode ):view (guide .getUri (source ), ' any' )
33- )
34- elseif arg .type == ' ...' then
35- args [# args + 1 ] = (' %s%s' ):format (
36- ' ...' ,
37- vm .getInfer (arg ):view (guide .getUri (source ), ' any' )
38- )
3935 else
40- args [# args + 1 ] = (' %s' ):format (vm .getInfer (arg ):view (guide .getUri (source ), ' any' ))
36+ local name = arg .name or guide .getKeyName (arg )
37+ if name then
38+ local argNode = vm .compileNode (arg )
39+ local optional
40+ if argNode :isOptional () then
41+ optional = true
42+ argNode = argNode :copy ()
43+ argNode :removeOptional ()
44+ end
45+ args [# args + 1 ] = (' %s%s: %s' ):format (
46+ name ,
47+ optional and ' ?' or ' ' ,
48+ vm .getInfer (argNode ):view (guide .getUri (source ), ' any' )
49+ )
50+ else
51+ args [# args + 1 ] = (' %s' ):format (vm .getInfer (arg ):view (guide .getUri (source ), ' any' ))
52+ end
4153 end
4254 :: CONTINUE::
4355 end
0 commit comments