summaryrefslogtreecommitdiff
path: root/script/vm
diff options
context:
space:
mode:
Diffstat (limited to 'script/vm')
-rw-r--r--script/vm/compiler.lua18
-rw-r--r--script/vm/function.lua6
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