From 97045c4af1a568699f477230d1fa3ea6942f331c Mon Sep 17 00:00:00 2001 From: Vidar Holen Date: Sat, 1 Mar 2014 10:14:17 -0800 Subject: [PATCH] Fixed x[0] not recognized as reference of x in arithmetics --- ShellCheck/Analytics.hs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ShellCheck/Analytics.hs b/ShellCheck/Analytics.hs index 6032f20..746e14e 100644 --- a/ShellCheck/Analytics.hs +++ b/ShellCheck/Analytics.hs @@ -1953,22 +1953,24 @@ prop_checkUnused9 = verifyNotTree checkUnusedAssignments "read ''" prop_checkUnused10= verifyNotTree checkUnusedAssignments "read -p 'test: '" prop_checkUnused11= verifyNotTree checkUnusedAssignments "bar=5; export foo[$bar]=3" prop_checkUnused12= verifyNotTree checkUnusedAssignments "read foo; echo ${!foo}" +prop_checkUnused13= verifyNotTree checkUnusedAssignments "x=(1); echo ${x[0]}" checkUnusedAssignments params t = snd $ runWriter (mapM_ checkAssignment flow) where flow = variableFlow params references = foldl (flip ($)) defaultMap (map insertRef flow) insertRef (Reference (base, token, name)) = - Map.insert name () + Map.insert (stripSuffix name) () insertRef _ = id checkAssignment (Assignment (_, token, name, _)) | isVariableName name = case Map.lookup name references of Just _ -> return () - Nothing -> do + Nothing -> info (getId token) 2034 $ name ++ " appears unused. Verify it or export it." checkAssignment _ = return () + stripSuffix str = takeWhile isVariableChar str defaultMap = Map.fromList $ zip internalVariables $ repeat () prop_checkGlobsAsOptions1 = verify checkGlobsAsOptions "rm *.txt"