diff options
Diffstat (limited to 'script/vm')
-rw-r--r-- | script/vm/compiler.lua | 18 | ||||
-rw-r--r-- | script/vm/function.lua | 6 |
2 files changed, 2 insertions, 22 deletions
diff --git a/script/vm/compiler.lua b/script/vm/compiler.lua index e7af1f0f..9a5eba7f 100644 --- a/script/vm/compiler.lua +++ b/script/vm/compiler.lua @@ -1553,10 +1553,6 @@ local compilerSwitch = util.switch() end if lastReturn and not hasMarkDoc then - if lastReturn.types[1][1] == '...' then - hasMarkDoc = true - vm.setNode(source, vm.declareGlobal('type', 'unknown')) - end if lastReturn.name and lastReturn.name[1] == '...' then hasMarkDoc = true vm.setNode(source, vm.compileNode(lastReturn)) @@ -1618,13 +1614,6 @@ local compilerSwitch = util.switch() if not node then return end - for n in node:eachObject() do - if n.type == 'global' - and n.cate == 'type' - and n.name == '...' then - return - end - end vm.setNode(source, node) end if vararg.type == 'varargs' then @@ -1643,13 +1632,6 @@ local compilerSwitch = util.switch() if not node then return end - for n in node:eachObject() do - if n.type == 'global' - and n.cate == 'type' - and n.name == '...' then - return - end - end vm.setNode(source, node) end) : case 'doc.type' diff --git a/script/vm/function.lua b/script/vm/function.lua index 8e3662e2..d94e7561 100644 --- a/script/vm/function.lua +++ b/script/vm/function.lua @@ -98,16 +98,14 @@ function vm.countReturnsOfFunction(func, mark) n = n + 1 lastReturn = ret dmax = n - if not vm.compileNode(ret):isNullable() then + if (not ret.name or ret.name[1] ~= '...') + and not vm.compileNode(ret):isNullable() then dmin = n end end end end if lastReturn then - if lastReturn.types[1][1] == '...' then - dmax = math.huge - end if lastReturn.name and lastReturn.name[1] == '...' then dmax = math.huge end |