diff options
author | 最萌小汐 <sumneko@hotmail.com> | 2022-12-16 15:14:13 +0800 |
---|---|---|
committer | 最萌小汐 <sumneko@hotmail.com> | 2022-12-16 15:14:13 +0800 |
commit | ef7d4030ff86eedd0e667b3e7fe4b06ca4aec5fe (patch) | |
tree | ebd88956154a1df96073e2ee98e56968c345be82 /script/vm/tracer.lua | |
parent | 7155b72aea44f631141ab84748e6052cb9da0838 (diff) | |
download | lua-language-server-ef7d4030ff86eedd0e667b3e7fe4b06ca4aec5fe.zip |
fix
Diffstat (limited to 'script/vm/tracer.lua')
-rw-r--r-- | script/vm/tracer.lua | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/script/vm/tracer.lua b/script/vm/tracer.lua index f8d99800..b97df135 100644 --- a/script/vm/tracer.lua +++ b/script/vm/tracer.lua @@ -326,10 +326,10 @@ function mt:lookIntoChild(action, topNode, outNode) self:lookIntoBlock(action, actionStart, topNode:copy()) local lastAssign = self:getLastAssign(action.start, action.finish) if lastAssign then - local node = self:getNode(lastAssign) - if node then - topNode = node:copy() - end + self:getNode(lastAssign) + end + if self.nodes[action] then + topNode = self.nodes[action]:copy() end end elseif action.type == 'while' then @@ -344,10 +344,10 @@ function mt:lookIntoChild(action, topNode, outNode) self:lookIntoBlock(action, action.keyword[4], blockNode:copy()) local lastAssign = self:getLastAssign(action.start, action.finish) if lastAssign then - local node = self:getNode(lastAssign) - if node then - topNode = mainNode:merge(node) - end + self:getNode(lastAssign) + end + if self.nodes[action] then + topNode = mainNode:merge(self.nodes[action]) end end if action.filter then @@ -388,11 +388,11 @@ function mt:lookIntoChild(action, topNode, outNode) else local lastAssign = self:getLastAssign(subBlock.start, subBlock.finish) if lastAssign then - local node = self:getNode(lastAssign) - if node then - blockNodes[#blockNodes+1] = node - mergedNode = true - end + self:getNode(lastAssign) + end + if self.nodes[subBlock] then + blockNodes[#blockNodes+1] = self.nodes[subBlock] + mergedNode = true end end end @@ -461,10 +461,11 @@ function mt:lookIntoBlock(block, start, node) node = self:lookIntoChild(action, node) end if action.finish > start and self.assignMap[action] then - break + return end ::CONTINUE:: end + self.nodes[block] = node end ---@param source parser.object |