Warn about 'export $foo'

This commit is contained in:
Vidar Holen 2015-07-18 13:23:36 -07:00
parent b1843c520f
commit 8894333556
1 changed files with 13 additions and 0 deletions

View File

@ -207,6 +207,7 @@ nodeChecks = [
,checkMaskedReturns
,checkInjectableFindSh
,checkReadWithoutR
,checkExportedExpansions
]
@ -3461,6 +3462,18 @@ checkReadWithoutR _ t@(T_SimpleCommand {}) | t `isUnqualifiedCommand` "read" =
info (getId t) 2162 "read without -r will mangle backslashes."
checkReadWithoutR _ _ = return ()
prop_checkExportedExpansions1 = verify checkExportedExpansions "export $foo"
prop_checkExportedExpansions2 = verify checkExportedExpansions "export \"$foo\""
prop_checkExportedExpansions3 = verifyNot checkExportedExpansions "export foo"
checkExportedExpansions _ = checkUnqualifiedCommand "export" (const check)
where
check = mapM_ checkForVariables
checkForVariables f =
case getWordParts f of
[t@(T_DollarBraced {})] ->
warn (getId t) 2163 "Exporting an expansion rather than a variable."
_ -> return ()
return []
runTests = $( [| $(forAllProperties) (quickCheckWithResult (stdArgs { maxSuccess = 1 }) ) |])