diff options
author | 最萌小汐 <sumneko@hotmail.com> | 2020-11-20 21:57:09 +0800 |
---|---|---|
committer | 最萌小汐 <sumneko@hotmail.com> | 2020-11-20 21:57:09 +0800 |
commit | 4ca61ec457822dd14966afa0752340ae8ce180a1 (patch) | |
tree | ae8adb1ad82c717868e551e699fd3cf3bb290089 /script-beta/core/diagnostics/redundant-parameter.lua | |
parent | c63b2e404d8d2bb984afe3678a5ba2b2836380cc (diff) | |
download | lua-language-server-4ca61ec457822dd14966afa0752340ae8ce180a1.zip |
no longer beta
Diffstat (limited to 'script-beta/core/diagnostics/redundant-parameter.lua')
-rw-r--r-- | script-beta/core/diagnostics/redundant-parameter.lua | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/script-beta/core/diagnostics/redundant-parameter.lua b/script-beta/core/diagnostics/redundant-parameter.lua deleted file mode 100644 index 2fae20e8..00000000 --- a/script-beta/core/diagnostics/redundant-parameter.lua +++ /dev/null @@ -1,82 +0,0 @@ -local files = require 'files' -local guide = require 'parser.guide' -local vm = require 'vm' -local lang = require 'language' -local define = require 'proto.define' -local await = require 'await' - -local function countCallArgs(source) - local result = 0 - if not source.args then - return 0 - end - if source.node and source.node.type == 'getmethod' then - result = result + 1 - end - result = result + #source.args - return result -end - -local function countFuncArgs(source) - local result = 0 - if source.parent and source.parent.type == 'setmethod' then - result = result + 1 - end - if not source.args then - return result - end - if source.args[#source.args].type == '...' then - return math.maxinteger - end - result = result + #source.args - return result -end - -return function (uri, callback) - local ast = files.getAst(uri) - if not ast then - return - end - - guide.eachSourceType(ast.ast, 'call', function (source) - local callArgs = countCallArgs(source) - if callArgs == 0 then - return - end - - local func = source.node - local funcArgs - local defs = vm.getDefs(func) - for _, def in ipairs(defs) do - if def.value then - def = def.value - end - if def.type == 'function' then - local args = countFuncArgs(def) - if not funcArgs or args > funcArgs then - funcArgs = args - end - end - end - - if not funcArgs then - return - end - - local delta = callArgs - funcArgs - if delta <= 0 then - return - end - for i = #source.args - delta + 1, #source.args do - local arg = source.args[i] - if arg then - callback { - start = arg.start, - finish = arg.finish, - tags = { define.DiagnosticTag.Unnecessary }, - message = lang.script('DIAG_OVER_MAX_ARGS', funcArgs, callArgs) - } - end - end - end) -end |