Я использую luacheck (в редакторе Atom), но открыт для других инструментов статического анализа.lua static analysis: определение неинициализированного поля таблицы
Есть ли способ проверить, что я использую неинициализированное поле таблицы? Я прочитал документы (http://luacheck.readthedocs.io/en/stable/index.html), но, возможно, я пропустил, как это сделать?
Во всех трех случаях в приведенном ниже коде я пытаюсь обнаружить, что я (ошибочно) использовал поле 'y1'. Ни один из них не делает. (Во время выполнения оно обнаружено, но я пытаюсь поймать его перед временем выполнения).
local a = {}
a.x = 10
a.y = 20
print(a.x + a.y1) -- no warning about uninitialized field y1 !?
-- luacheck: globals b
b = {}
b.x = 10
b.y = 20
print(b.x + b.y1) -- no warning about uninitialized field y1 !?
-- No inline option for luacheck re: 'c', so plenty of complaints
-- about "non-standard global variable 'c'."
c = {} -- warning about setting
c.x = 10 -- warning about mutating
c.y = 20 -- " " "
print(c.x + c.y1) -- more warnings (but NOT about field y1)
Дело заключается в следующем: по мере роста проектов (файлы растут, а размер модулей число & расти), было бы неплохо, чтобы предотвратить простые ошибки, как это от ползучего в
Спасибо..
https://github.com/mpeterv/luacheck/issues/46 https: // github .com/mpeterv/luacheck/issues/39 Просто его нет. – Green
Спасибо - хорошо знать, что я чего-то не пропустил, и, возможно, это может быть адресовано в luacheck. –
Действительно, доступ к неинициализированным полям не относится к списку проблем, которые luacheck обнаруживает: http://luacheck.readthedocs.io/en/stable/warnings.html. Я планирую работать над этим. – mpeterv