Merge branch 'translatedVars'
This commit is contained in:
commit
4da34fbc64
|
@ -6,6 +6,7 @@
|
||||||
### Added
|
### Added
|
||||||
- SC2254: Suggest quoting expansions in case statements
|
- SC2254: Suggest quoting expansions in case statements
|
||||||
- SC2255: Suggest using `$((..))` in `[ 2*3 -eq 6 ]`
|
- SC2255: Suggest using `$((..))` in `[ 2*3 -eq 6 ]`
|
||||||
|
- SC2256: Warn about translated strings that are known variables
|
||||||
|
|
||||||
## v0.7.0 - 2019-07-28
|
## v0.7.0 - 2019-07-28
|
||||||
### Added
|
### Added
|
||||||
|
|
|
@ -192,6 +192,7 @@ nodeChecks = [
|
||||||
,checkRedirectionToCommand
|
,checkRedirectionToCommand
|
||||||
,checkDollarQuoteParen
|
,checkDollarQuoteParen
|
||||||
,checkUselessBang
|
,checkUselessBang
|
||||||
|
,checkTranslatedStringVariable
|
||||||
]
|
]
|
||||||
|
|
||||||
optionalChecks = map fst optionalTreeChecks
|
optionalChecks = map fst optionalTreeChecks
|
||||||
|
@ -3451,6 +3452,25 @@ checkDollarQuoteParen params t =
|
||||||
where
|
where
|
||||||
fix id = fixWith [replaceStart id params 2 "\"$"]
|
fix id = fixWith [replaceStart id params 2 "\"$"]
|
||||||
|
|
||||||
|
prop_checkTranslatedStringVariable1 = verify checkTranslatedStringVariable "foo_bar2=val; $\"foo_bar2\""
|
||||||
|
prop_checkTranslatedStringVariable2 = verifyNot checkTranslatedStringVariable "$\"foo_bar2\""
|
||||||
|
prop_checkTranslatedStringVariable3 = verifyNot checkTranslatedStringVariable "$\"..\""
|
||||||
|
prop_checkTranslatedStringVariable4 = verifyNot checkTranslatedStringVariable "var=val; $\"$var\""
|
||||||
|
prop_checkTranslatedStringVariable5 = verifyNot checkTranslatedStringVariable "foo=var; bar=val2; $\"foo bar\""
|
||||||
|
checkTranslatedStringVariable params (T_DollarDoubleQuoted id [T_Literal _ s]) =
|
||||||
|
fromMaybe (return ()) $ do
|
||||||
|
guard $ all isVariableChar s
|
||||||
|
Map.lookup s assignments
|
||||||
|
return $
|
||||||
|
warnWithFix id 2256 "This translated string is the name of a variable. Flip leading $ and \" if this should be a quoted substitution." (fix id)
|
||||||
|
where
|
||||||
|
assignments = foldl (flip ($)) Map.empty (map insertAssignment $ variableFlow params)
|
||||||
|
insertAssignment (Assignment (_, token, name, _)) | isVariableName name =
|
||||||
|
Map.insert name token
|
||||||
|
insertAssignment _ = Prelude.id
|
||||||
|
fix id = fixWith [replaceStart id params 2 "\"$"]
|
||||||
|
checkTranslatedStringVariable _ _ = return ()
|
||||||
|
|
||||||
prop_checkDefaultCase1 = verify checkDefaultCase "case $1 in a) true ;; esac"
|
prop_checkDefaultCase1 = verify checkDefaultCase "case $1 in a) true ;; esac"
|
||||||
prop_checkDefaultCase2 = verify checkDefaultCase "case $1 in ?*?) true ;; *? ) true ;; esac"
|
prop_checkDefaultCase2 = verify checkDefaultCase "case $1 in ?*?) true ;; *? ) true ;; esac"
|
||||||
prop_checkDefaultCase3 = verifyNot checkDefaultCase "case $1 in x|*) true ;; esac"
|
prop_checkDefaultCase3 = verifyNot checkDefaultCase "case $1 in x|*) true ;; esac"
|
||||||
|
|
Loading…
Reference in New Issue