From 138080bdc7442458f45bd2726d9e8cb4b68cf24f Mon Sep 17 00:00:00 2001 From: Vidar Holen Date: Sun, 16 Dec 2018 14:42:19 -0800 Subject: [PATCH] Fix infinite loop on annotations for SC2188 (fixes #1413) --- src/ShellCheck/Analytics.hs | 2 +- src/ShellCheck/Checker.hs | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ShellCheck/Analytics.hs b/src/ShellCheck/Analytics.hs index 7754ee64..a164de13 100644 --- a/src/ShellCheck/Analytics.hs +++ b/src/ShellCheck/Analytics.hs @@ -2692,7 +2692,7 @@ checkRedirectedNowhere params token = case drop 1 $ getPath (parentMap params) t of T_DollarExpansion _ [_] : _ -> True T_Backticked _ [_] : _ -> True - T_Annotation _ _ u : _ -> isInExpansion u + t@T_Annotation {} : _ -> isInExpansion t _ -> False getDanglingRedirect token = case token of diff --git a/src/ShellCheck/Checker.hs b/src/ShellCheck/Checker.hs index 7ac9c913..10074e38 100644 --- a/src/ShellCheck/Checker.hs +++ b/src/ShellCheck/Checker.hs @@ -231,5 +231,7 @@ prop_filewideAnnotation8 = null $ prop_sourcePartOfOriginalScript = -- #1181: -x disabled posix warning for 'source' 2039 `elem` checkWithIncludes [("./saywhat.sh", "echo foo")] "#!/bin/sh\nsource ./saywhat.sh" +prop_spinBug1413 = null $ check "fun() {\n# shellcheck disable=SC2188\n> /dev/null\n}\n" + return [] runTests = $quickCheckAll