diff options
-rw-r--r-- | script/core/diagnostics/redundant-parameter.lua | 6 | ||||
-rw-r--r-- | script/parser/ast.lua | 1 | ||||
-rw-r--r-- | script/parser/guide.lua | 18 |
3 files changed, 17 insertions, 8 deletions
diff --git a/script/core/diagnostics/redundant-parameter.lua b/script/core/diagnostics/redundant-parameter.lua index 8176f0af..4adf169e 100644 --- a/script/core/diagnostics/redundant-parameter.lua +++ b/script/core/diagnostics/redundant-parameter.lua @@ -71,13 +71,7 @@ return function (uri, callback) return end - local cache = vm.getCache 'redundant-parameter' - guide.eachSourceType(ast.ast, 'call', function (source) - -- parameters be expanded by iterator - if source.node.iterator then - return - end local callArgs = countCallArgs(source) if callArgs == 0 then return diff --git a/script/parser/ast.lua b/script/parser/ast.lua index 18bff05c..648a6890 100644 --- a/script/parser/ast.lua +++ b/script/parser/ast.lua @@ -1577,7 +1577,6 @@ local Defs = { symbol = symbol, } } - return end, UnknownAction = function (start, symbol) PushError { diff --git a/script/parser/guide.lua b/script/parser/guide.lua index 2b22d1b2..c4b0b1db 100644 --- a/script/parser/guide.lua +++ b/script/parser/guide.lua @@ -53,6 +53,10 @@ local type = type ---@field state table ---@field comment table ---@field optional boolean +---@field max parser.object +---@field init parser.object +---@field step parser.object +---@field redundant { max: integer, passed: integer } ---@field _root parser.object ---@class guide @@ -672,6 +676,10 @@ local function getSourceTypeCache(ast) end --- 遍历所有指定类型的source +---@param ast parser.object +---@param type string +---@param callback fun(src: parser.object) +---@return any function m.eachSourceType(ast, type, callback) local cache = getSourceTypeCache(ast) local myCache = cache[type] @@ -679,10 +687,16 @@ function m.eachSourceType(ast, type, callback) return end for i = 1, #myCache do - callback(myCache[i]) + local res = callback(myCache[i]) + if res ~= nil then + return res + end end end +---@param ast parser.object +---@param tps string[] +---@param callback fun(src: parser.object) function m.eachSourceTypes(ast, tps, callback) local cache = getSourceTypeCache(ast) for x = 1, #tps do @@ -696,6 +710,8 @@ function m.eachSourceTypes(ast, tps, callback) end --- 遍历所有的source +---@param ast parser.object +---@param callback fun(src: parser.object) function m.eachSource(ast, callback) local cache = ast._eachCache if not cache then |