mirror of
https://github.com/koalaman/shellcheck.git
synced 2025-08-08 18:25:17 +08:00
Don't trigger SC2154 (unassigned var) in -n
/-z
expressions #1583
This commit is contained in:
@@ -510,6 +510,9 @@ getModifiedVariables t =
|
||||
guard . not . null $ str
|
||||
return (t, token, str, DataString SourceChecked)
|
||||
|
||||
TC_Unary _ _ "-n" (T_NormalWord _ [T_DoubleQuoted _ [db@(T_DollarBraced _ _ _)]]) ->
|
||||
[(t, t, getBracedReference (bracedString db), DataString SourceChecked)]
|
||||
|
||||
T_DollarBraced _ _ l -> maybeToList $ do
|
||||
let string = bracedString t
|
||||
let modifier = getBracedModifier string
|
||||
@@ -719,7 +722,9 @@ getOffsetReferences mods = fromMaybe [] $ do
|
||||
getReferencedVariables parents t =
|
||||
case t of
|
||||
T_DollarBraced id _ l -> let str = bracedString t in
|
||||
(t, t, getBracedReference str) :
|
||||
if isMinusZTest t
|
||||
then []
|
||||
else (t, t, getBracedReference str) :
|
||||
map (\x -> (l, l, x)) (
|
||||
getIndexReferences str
|
||||
++ getOffsetReferences (getBracedModifier str))
|
||||
@@ -774,6 +779,10 @@ getReferencedVariables parents t =
|
||||
this: TA_Assignment _ "=" lhs _ :_ -> lhs == t
|
||||
_ -> False
|
||||
|
||||
isMinusZTest t = case getPath parents t of
|
||||
_ : T_DoubleQuoted _ [_] : T_NormalWord _ [_] : TC_Unary _ SingleBracket "-z" _ : _ -> True
|
||||
_ -> False
|
||||
|
||||
dataTypeFrom defaultType v = (case v of T_Array {} -> DataArray; _ -> defaultType) $ SourceFrom [v]
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user