From 619662adb63e027866a7511e695b87d8ca069654 Mon Sep 17 00:00:00 2001 From: Keith Smiley Date: Fri, 23 Oct 2020 17:29:04 -0700 Subject: [PATCH] Add readonly to SC2155 This adds a warning for readonly masking the return value of function. This is mentioned in the wiki https://github.com/koalaman/shellcheck/wiki/SC2155#problematic-code-in-the-case-of-readonly but didn't actually produce a warning. Fixes https://github.com/koalaman/shellcheck/issues/1336 --- src/ShellCheck/Analytics.hs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/ShellCheck/Analytics.hs b/src/ShellCheck/Analytics.hs index f55b704..c894075 100644 --- a/src/ShellCheck/Analytics.hs +++ b/src/ShellCheck/Analytics.hs @@ -2902,11 +2902,14 @@ checkTestArgumentSplitting params t = prop_checkMaskedReturns1 = verify checkMaskedReturns "f() { local a=$(false); }" prop_checkMaskedReturns2 = verify checkMaskedReturns "declare a=$(false)" prop_checkMaskedReturns3 = verify checkMaskedReturns "declare a=\"`false`\"" -prop_checkMaskedReturns4 = verifyNot checkMaskedReturns "declare a; a=$(false)" -prop_checkMaskedReturns5 = verifyNot checkMaskedReturns "f() { local -r a=$(false); }" +prop_checkMaskedReturns4 = verify checkMaskedReturns "readonly a=$(false)" +prop_checkMaskedReturns5 = verify checkMaskedReturns "readonly a=\"`false`\"" +prop_checkMaskedReturns6 = verifyNot checkMaskedReturns "declare a; a=$(false)" +prop_checkMaskedReturns7 = verifyNot checkMaskedReturns "f() { local -r a=$(false); }" +prop_checkMaskedReturns8 = verifyNot checkMaskedReturns "a=$(false); readonly a" checkMaskedReturns _ t@(T_SimpleCommand id _ (cmd:rest)) = sequence_ $ do name <- getCommandName t - guard $ name `elem` ["declare", "export"] + guard $ name `elem` ["declare", "export", "readonly"] || name == "local" && "r" `notElem` map snd (getAllFlags t) return $ mapM_ checkArgs rest where