diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b510ab..03c8395 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ - SC2048: Warning about $\* now also applies to ${array[\*]} - SC2181 now only triggers on single condition tests like `[ $? = 0 ]`. - Quote warnings are now emitted for declaration utilities in sh +- Leading `_` can now be used to suppress warnings about unused variables ## v0.7.2 - 2021-04-19 diff --git a/src/ShellCheck/Analytics.hs b/src/ShellCheck/Analytics.hs index 97863dd..8e0589c 100644 --- a/src/ShellCheck/Analytics.hs +++ b/src/ShellCheck/Analytics.hs @@ -2310,6 +2310,7 @@ prop_checkUnused44= verifyNotTree checkUnusedAssignments "DEFINE_string \"foo$ib prop_checkUnused45= verifyTree checkUnusedAssignments "readonly foo=bar" prop_checkUnused46= verifyTree checkUnusedAssignments "readonly foo=(bar)" prop_checkUnused47= verifyNotTree checkUnusedAssignments "a=1; alias hello='echo $a'" +prop_checkUnused48= verifyNotTree checkUnusedAssignments "_a=1" checkUnusedAssignments params t = execWriter (mapM_ warnFor unused) where flow = variableFlow params @@ -2326,8 +2327,9 @@ checkUnusedAssignments params t = execWriter (mapM_ warnFor unused) unused = Map.assocs $ Map.difference assignments references warnFor (name, token) = - warn (getId token) 2034 $ - name ++ " appears unused. Verify use (or export if used externally)." + unless ("_" `isPrefixOf` name) $ + warn (getId token) 2034 $ + name ++ " appears unused. Verify use (or export if used externally)." stripSuffix = takeWhile isVariableChar defaultMap = Map.fromList $ zip internalVariables $ repeat ()