summaryrefslogtreecommitdiff
path: root/script/vm
diff options
context:
space:
mode:
author最萌小汐 <sumneko@hotmail.com>2022-07-04 20:18:16 +0800
committer最萌小汐 <sumneko@hotmail.com>2022-07-04 20:18:16 +0800
commitffc89179de7598fce8bd0db54f09275d09d3f5b2 (patch)
tree96381aef0f14d858f3584a82d3667d755eb3379e /script/vm
parente601608ed7da7e88a31775cc459905d406558ae2 (diff)
downloadlua-language-server-ffc89179de7598fce8bd0db54f09275d09d3f5b2.zip
fix runner
Diffstat (limited to 'script/vm')
-rw-r--r--script/vm/compiler.lua2
-rw-r--r--script/vm/runner.lua5
2 files changed, 4 insertions, 3 deletions
diff --git a/script/vm/compiler.lua b/script/vm/compiler.lua
index 6932a8c8..37042d76 100644
--- a/script/vm/compiler.lua
+++ b/script/vm/compiler.lua
@@ -1313,6 +1313,8 @@ local compilerSwitch = util.switch()
else
vm.setNode(src, vm.compileNode(src.value), true)
end
+ else
+ vm.setNode(src, node, true)
end
return vm.getNode(src)
elseif src.type == 'getlocal' then
diff --git a/script/vm/runner.lua b/script/vm/runner.lua
index 6c3c69a1..8169c8f2 100644
--- a/script/vm/runner.lua
+++ b/script/vm/runner.lua
@@ -65,7 +65,6 @@ function mt:_collect()
and cast.finish < finishPos
and guide.getLocal(self._loc, self._loc[1], cast.start) == self._loc then
self._casts[#self._casts+1] = cast
- self:_markHas(cast)
end
end
end
@@ -284,7 +283,7 @@ function mt:_lookIntoChild(action, topNode, outNode)
if action.value then
self:_lookIntoChild(action.value, topNode)
end
- topNode = self._callback(action)
+ topNode = self._callback(action, topNode)
end
elseif action.type == 'local' then
if action.value
@@ -307,12 +306,12 @@ function mt:_lookIntoChild(action, topNode, outNode)
end
end
end
+ ::RETURN::
guide.eachChild(action, function (src)
if self._has[src] then
self:_lookIntoChild(src, topNode)
end
end)
- ::RETURN::
return topNode, outNode or topNode
end