diff --git a/src/ShellCheck/Analytics.hs b/src/ShellCheck/Analytics.hs index 3d00d29..e695d24 100644 --- a/src/ShellCheck/Analytics.hs +++ b/src/ShellCheck/Analytics.hs @@ -2127,6 +2127,7 @@ prop_checkUnused43= verifyTree checkUnusedAssignments "DEFINE_string foo '' ''" prop_checkUnused44= verifyNotTree checkUnusedAssignments "DEFINE_string \"foo$ibar\" x y" prop_checkUnused45= verifyTree checkUnusedAssignments "readonly foo=bar" prop_checkUnused46= verifyTree checkUnusedAssignments "readonly foo=(bar)" +prop_checkUnused47= verifyNotTree checkUnusedAssignments "a=1; alias hello='echo $a'" checkUnusedAssignments params t = execWriter (mapM_ warnFor unused) where flow = variableFlow params diff --git a/src/ShellCheck/AnalyzerLib.hs b/src/ShellCheck/AnalyzerLib.hs index dbf59a0..42f57b1 100644 --- a/src/ShellCheck/AnalyzerLib.hs +++ b/src/ShellCheck/AnalyzerLib.hs @@ -544,8 +544,9 @@ getReferencedVariableCommand base@(T_SimpleCommand _ _ (T_NormalWord _ (T_Litera else [] "trap" -> case rest of - head:_ -> map (\x -> (head, head, x)) $ getVariablesFromLiteralToken head + head:_ -> map (\x -> (base, head, x)) $ getVariablesFromLiteralToken head _ -> [] + "alias" -> [(base, token, name) | token <- rest, name <- getVariablesFromLiteralToken token] _ -> [] where getReference t@(T_Assignment _ _ name _ value) = [(t, t, name)]