From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpng2.m.smailru.net (smtpng2.m.smailru.net [94.100.179.3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 0127E4696C3 for ; Thu, 23 Apr 2020 17:20:34 +0300 (MSK) Date: Thu, 23 Apr 2020 17:13:26 +0300 From: Igor Munkin Message-ID: <20200423141326.GB11314@tarantool.org> References: <89f3b427d1ccf4a85fab38c30d5ea23497f3a709.1587476678.git.sergeyb@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <89f3b427d1ccf4a85fab38c30d5ea23497f3a709.1587476678.git.sergeyb@tarantool.org> Subject: Re: [Tarantool-patches] [PATCH v4 4/10] Fix luacheck warnings in src/lua/ List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: sergeyb@tarantool.org Cc: o.piskunov@tarantool.org, tarantool-patches@dev.tarantool.org, v.shpilevoy@tarantool.org Sergey, Thanks for the patch! I left several comments below, please consider them. On 21.04.20, sergeyb@tarantool.org wrote: > From: Sergey Bronnikov > > Closes #4681 > > Reviewed-by: Vladislav Shpilevoy > Reviewed-by: Igor Munkin > > Co-authored-by: Vladislav Shpilevoy > Co-authored-by: Igor Munkin > --- > .luacheckrc | 3 ++ > src/lua/argparse.lua | 6 ++-- > src/lua/buffer.lua | 4 +-- > src/lua/clock.lua | 2 +- > src/lua/crypto.lua | 4 +-- > src/lua/csv.lua | 5 ++- > src/lua/digest.lua | 2 +- > src/lua/env.lua | 2 +- > src/lua/fiber.lua | 4 +-- > src/lua/fio.lua | 25 +++++++------- > src/lua/help.lua | 7 ++-- > src/lua/httpc.lua | 3 -- > src/lua/init.lua | 7 ++-- > src/lua/msgpackffi.lua | 22 +++++-------- > src/lua/socket.lua | 65 ++++++++++++++++++------------------- > src/lua/string.lua | 1 - > src/lua/swim.lua | 10 +++--- > src/lua/tap.lua | 74 ++++++++++++++++++++---------------------- > src/lua/trigger.lua | 3 -- > 19 files changed, 117 insertions(+), 132 deletions(-) > > diff --git a/.luacheckrc b/.luacheckrc > index 0b7dc2dfe..60aedc842 100644 > --- a/.luacheckrc > +++ b/.luacheckrc > @@ -26,3 +26,6 @@ exclude_files = { > } > > files["extra/dist/tarantoolctl.in"] = {ignore = {"212/self", "122", "431"}} > +files["src/lua/swim.lua"] = {ignore = {"431"}} > +files["src/lua/fio.lua"] = {ignore = {"231"}} > +files["src/lua/init.lua"] = {globals = {"dostring"}} There are several "(W212) unused argument self" warnings for crypto.lua (and other chunks like digest.lua, errno.lua, etc), but no corresponding suppression in .luacheckrc like the one you added for tarantoolctl.in in the previous patch. Furthermore I see no reason to leave suppressions list unsorted. > diff --git a/src/lua/argparse.lua b/src/lua/argparse.lua > index faa0ae130..f58985425 100644 > --- a/src/lua/argparse.lua > +++ b/src/lua/argparse.lua > @@ -90,8 +90,8 @@ local function convert_parameter(name, convert_from, convert_to) > return convert_from > end > > -local function parameters_parse(t_in, options) > - local t_out, t_in = {}, t_in or {} > +local function parameters_parse(t__in, options) > + local t_out, t_in = {}, t__in or {} Moved the related thread from v3 series review[1]: | > > diff --git a/src/lua/argparse.lua b/src/lua/argparse.lua | > > index faa0ae130..f58985425 100644 | > > --- a/src/lua/argparse.lua | > > +++ b/src/lua/argparse.lua | > > @@ -90,8 +90,8 @@ local function convert_parameter(name, convert_from, convert_to) | > > return convert_from | > > end | > > | > > -local function parameters_parse(t_in, options) | > > - local t_out, t_in = {}, t_in or {} | > > +local function parameters_parse(t__in, options) | > > + local t_out, t_in = {}, t__in or {} | > | > I guess you can just give t__in a proper name, e.g. args, params, etc. | | Agree with you, replaced it with 'param'. | I see no corresponding changes in v4. > > -- Prepare a lookup table for options. An option name -> a > -- type name to convert a parameter into or true (which means > diff --git a/src/lua/fio.lua b/src/lua/fio.lua > index 83fddaa0a..b2b4b4c77 100644 > --- a/src/lua/fio.lua > +++ b/src/lua/fio.lua > @@ -407,20 +407,20 @@ fio.rmtree = function(path) > if type(path) ~= 'string' then > error("Usage: fio.rmtree(path)") > end > - local status, err > + local status This was also mentioned in the v3 series review[2]: | This value is unused (and the corresponding warning is reported). | Consider the changes below: | | ================================================================================ | | diff --git a/src/lua/fio.lua b/src/lua/fio.lua | index b2b4b4c77..e271eccf6 100644 | --- a/src/lua/fio.lua | +++ b/src/lua/fio.lua | @@ -407,7 +407,6 @@ fio.rmtree = function(path) | if type(path) ~= 'string' then | error("Usage: fio.rmtree(path)") | end | - local status | path = fio.abspath(path) | local ls, err = fio.listdir(path) | if err ~= nil then | @@ -427,7 +426,8 @@ fio.rmtree = function(path) | end | end | end | - status, err = fio.rmdir(path) | + local _ | + _, err = fio.rmdir(path) | if err ~= nil then | return false, string.format("failed to remove %s: %s", path, err) | end | | ================================================================================ I see no reason to suppress it in the .luacheckrc instead of fixing a single occurense. > path = fio.abspath(path) > local ls, err = fio.listdir(path) > if err ~= nil then > return nil, err > end > - for i, f in ipairs(ls) do > + for _, f in ipairs(ls) do > local tmppath = fio.pathjoin(path, f) > local st = fio.lstat(tmppath) > if st then > if st:is_dir() then > - st, err = fio.rmtree(tmppath) > + _, err = fio.rmtree(tmppath) > else > - st, err = fio.unlink(tmppath) > + _, err = fio.unlink(tmppath) > end > if err ~= nil then > return nil, err > diff --git a/src/lua/help.lua b/src/lua/help.lua > index 54ff1b5d0..1b822828b 100644 > --- a/src/lua/help.lua > +++ b/src/lua/help.lua > @@ -22,7 +19,7 @@ setmetatable(help, { __call = help_call }) > > local screen_id = 1; > > -local function tutorial_call(table, action) > +local function tutorial_call(action) This change breaks the behaviour. Consider the following: | $ ./src/tarantool | Tarantool 2.4.0-192-g89f3b427d | type 'help' for interactive help | tarantool> tutorial('start') | --- | - error: 'builtin/help.lua:32: Usage: tutorial("start" | "next" | "prev" | 1 .. 20)' | ... | | tarantool> getmetatable(tutorial).__call('start') | --- | - | | Tutorial -- Screen #1 -- Hello, Moon | ==================================== | | Welcome to the Tarantool tutorial. | It will introduce you to Tarantool’s Lua application server | and database server, which is what’s running what you’re seeing. | This is INTERACTIVE -- you’re expected to enter requests | based on the suggestions or examples in the screen’s text. | | The first request is: | | 5.1, "Olá", "Lua" | ------------------ | | This isn’t your grandfather’s "Hello World" ... | the decimal literal 5.1 and the two strings inside | single quotes ("Hello Moon" in Portuguese) will just | be repeated, without need for a print() statement. | | Take that one-line request and enter it below after the | "tarantool>" prompt, then type Enter. | You’ll see the response: | --- | - 5.1 | - Olá | - Lua | ... | Then you’ll get a chance to repeat -- perhaps entering | something else such as "Longer String",-1,-3,0. | When you’re ready to go to the next screen, enter . | ... | | tarantool> Long story short: table arg is similar to self here (see more here[3]) and cannot be simply dropped. Nevertheless it looks more convenient to replace it with self. I guess it would be nice to add a test for it (or at least file a follow-up issue requesting the test). > if action == 'start' then > screen_id = 1; > elseif action == 'next' or action == 'more' then > -- > 2.23.0 > [1]: https://lists.tarantool.org/pipermail/tarantool-patches/2020-April/016113.html [2]: https://lists.tarantool.org/pipermail/tarantool-patches/2020-April/016022.html [3]: https://www.lua.org/manual/5.1/manual.html#2.8 -- Best regards, IM