From be0d0247b180f0da68edac57ae1498b90eb2ff30 Mon Sep 17 00:00:00 2001 From: Tito Sacchi Date: Mon, 28 Oct 2019 17:40:56 +0100 Subject: [PATCH] Fix issue #1733 (False negative in SC2155) --- src/ShellCheck/Analytics.hs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/ShellCheck/Analytics.hs b/src/ShellCheck/Analytics.hs index 221caa1..041529f 100644 --- a/src/ShellCheck/Analytics.hs +++ b/src/ShellCheck/Analytics.hs @@ -2788,11 +2788,12 @@ 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); }" -checkMaskedReturns _ t@(T_SimpleCommand id _ (cmd:rest)) = potentially $ do +checkMaskedReturns _ t@(T_SimpleCommand id preopts (cmd:rest)) = potentially $ do name <- getCommandName t guard $ name `elem` ["declare", "export"] || name == "local" && "r" `notElem` map snd (getAllFlags t) - return $ mapM_ checkArgs rest + || not (null preopts) + return $ mapM_ checkArgs (preopts ++ rest) where checkArgs (T_Assignment id _ _ _ word) | any hasReturn $ getWordParts word = warn id 2155 "Declare and assign separately to avoid masking return values."