From 4c3e731445ae65108ed939cb0d09cf2bb94ba26c Mon Sep 17 00:00:00 2001 From: Vidar Holen Date: Sat, 9 May 2015 11:48:08 -0700 Subject: [PATCH] Don't warn about a/b*c for ksh or when b == c --- ShellCheck/Analytics.hs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ShellCheck/Analytics.hs b/ShellCheck/Analytics.hs index 827fa80..e744971 100644 --- a/ShellCheck/Analytics.hs +++ b/ShellCheck/Analytics.hs @@ -376,6 +376,7 @@ dist a b lab = length a - length b min3 x y z = if x < y then x else min y z +hasFloatingPoint params = shellType params == Ksh prop_checkEchoWc3 = verify checkEchoWc "n=$(echo $foo | wc -c)" checkEchoWc _ (T_Pipeline id _ [a, b]) = @@ -1293,8 +1294,10 @@ checkForDecimals _ _ = return () prop_checkDivBeforeMult = verify checkDivBeforeMult "echo $((c/n*100))" prop_checkDivBeforeMult2 = verifyNot checkDivBeforeMult "echo $((c*100/n))" -checkDivBeforeMult _ (TA_Binary _ "*" (TA_Binary id "/" _ _) _) = - info id 2017 "Increase precision by replacing a/b*c with a*c/b." +prop_checkDivBeforeMult3 = verifyNot checkDivBeforeMult "echo $((c/10*10))" +checkDivBeforeMult params (TA_Binary _ "*" (TA_Binary id "/" _ x) y) + | not (hasFloatingPoint params) && x /= y = + info id 2017 "Increase precision by replacing a/b*c with a*c/b." checkDivBeforeMult _ _ = return () prop_checkArithmeticDeref = verify checkArithmeticDeref "echo $((3+$foo))" -- GitLab