summaryrefslogtreecommitdiff
path: root/server/src
diff options
context:
space:
mode:
author最萌小汐 <sumneko@hotmail.com>2018-12-03 14:10:31 +0800
committer最萌小汐 <sumneko@hotmail.com>2018-12-03 14:10:31 +0800
commitcab0b6dbf953aae890a2e7e413b94643191f176a (patch)
tree3de9d1170cae1097b2593c4f8fc8907dc628e57e /server/src
parenta17ae2a2d51e2decce0c793771a52999a1953270 (diff)
downloadlua-language-server-cab0b6dbf953aae890a2e7e413b94643191f176a.zip
每一层都检查一次表达式
Diffstat (limited to 'server/src')
-rw-r--r--server/src/matcher/definition.lua5
1 files changed, 2 insertions, 3 deletions
diff --git a/server/src/matcher/definition.lua b/server/src/matcher/definition.lua
index 4b7b04c5..453dc291 100644
--- a/server/src/matcher/definition.lua
+++ b/server/src/matcher/definition.lua
@@ -137,16 +137,17 @@ function mt:searchSimple(simple)
var = self:getVar(name[1], name)
self:checkVar(var, name)
end
+ self:searchExp(simple[1])
for i = 2, #simple do
local obj = simple[i]
local tp = obj.type
+ self:searchExp(obj)
if tp == 'call' then
var = self:searchCall(obj, simple, i)
elseif tp == ':' then
elseif tp == 'name' then
if obj.index then
var = nil
- self:searchExp(obj)
else
var = self:getField(var, obj[1], obj)
self:checkVar(var, obj)
@@ -156,8 +157,6 @@ function mt:searchSimple(simple)
if obj.type == 'string' or obj.type == 'number' or obj.type == 'boolean' then
var = self:getField(var, obj[1], obj)
self:checkVar(var, obj)
- else
- self:searchExp(obj)
end
else
var = nil