diff --git a/ShellCheck/Analytics.hs b/ShellCheck/Analytics.hs index c6da563..7ad172c 100644 --- a/ShellCheck/Analytics.hs +++ b/ShellCheck/Analytics.hs @@ -1115,11 +1115,13 @@ prop_checkArithmeticDeref10= verifyNot checkArithmeticDeref "(( a[\\$foo] ))" prop_checkArithmeticDeref11= verifyNot checkArithmeticDeref "a[$foo]=wee" prop_checkArithmeticDeref12= verify checkArithmeticDeref "for ((i=0; $i < 3; i)); do true; done" prop_checkArithmeticDeref13= verifyNot checkArithmeticDeref "(( $$ ))" +prop_checkArithmeticDeref14= verifyNot checkArithmeticDeref "(( $! ))" +prop_checkArithmeticDeref15= verifyNot checkArithmeticDeref "(( ${!var} ))" checkArithmeticDeref params t@(TA_Expansion _ [b@(T_DollarBraced id _)]) = unless (isException $ bracedString b) getWarning where isException [] = True - isException s = any (`elem` "/.:#%?*@$-") s || isDigit (head s) + isException s = any (`elem` "/.:#%?*@$-!") s || isDigit (head s) getWarning = fromMaybe noWarning . msum . map warningFor $ parents params t warningFor t = case t of