summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--server/src/core/diagnostics.lua18
-rw-r--r--server/test/diagnostics/init.lua1
2 files changed, 10 insertions, 9 deletions
diff --git a/server/src/core/diagnostics.lua b/server/src/core/diagnostics.lua
index 33037d5f..d49f8da2 100644
--- a/server/src/core/diagnostics.lua
+++ b/server/src/core/diagnostics.lua
@@ -256,23 +256,23 @@ function mt:searchLowercaseGlobal(callback)
for name in pairs(library.global) do
definedGlobal[name] = true
end
- local uri = self.vm.uri
- local envValue = self.vm.env:getValue()
- envValue:eachInfo(function (info, src)
- if info.type == 'set child' and src.uri == uri then
- local name = info[1]
+ self.vm:eachSource(function (source)
+ if source.type == 'name'
+ and source:get 'parent'
+ and not source:get 'simple'
+ and not source:get 'table index'
+ and source:action() == 'set'
+ then
+ local name = source[1]
if definedGlobal[name] then
return
end
- if type(name) ~= 'string' then
- return
- end
local first = name:match '%w'
if not first then
return
end
if first:match '%l' then
- callback(src.start, src.finish)
+ callback(source.start, source.finish)
end
end
end)
diff --git a/server/test/diagnostics/init.lua b/server/test/diagnostics/init.lua
index 3eb0b19e..7a092803 100644
--- a/server/test/diagnostics/init.lua
+++ b/server/test/diagnostics/init.lua
@@ -240,6 +240,7 @@ TEST [[
<!aa!> = 1
tostring = 1
ROOT = 1
+_G.bb = 1
]]
TEST [[