From 30c75340e6ca5dddbae8977caebe671bf77f12d3 Mon Sep 17 00:00:00 2001 From: "gabriele.lana" Date: Sat, 26 Oct 2019 15:41:46 +0200 Subject: [PATCH] Parse regular `for` with body in curly braces Fixes #1694 --- src/ShellCheck/Parser.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ShellCheck/Parser.hs b/src/ShellCheck/Parser.hs index 075d486..b2717aa 100644 --- a/src/ShellCheck/Parser.hs +++ b/src/ShellCheck/Parser.hs @@ -2448,6 +2448,7 @@ readDoGroup kwId = do prop_readForClause = isOk readForClause "for f in *; do rm \"$f\"; done" +prop_readForClause1 = isOk readForClause "for f in *; { rm \"$f\"; }" prop_readForClause3 = isOk readForClause "for f; do foo; done" prop_readForClause4 = isOk readForClause "for((i=0; i<10; i++)); do echo $i; done" prop_readForClause5 = isOk readForClause "for ((i=0;i<10 && n>x;i++,--n))\ndo \necho $i\ndone" @@ -2487,7 +2488,7 @@ readForClause = called "for loop" $ do "Don't use $ on the iterator name in for loops." name <- readVariableName `thenSkip` allspacing values <- readInClause <|> (optional readSequentialSep >> return []) - group <- readDoGroup id + group <- readBraced <|> readDoGroup id return $ T_ForIn id name values group prop_readSelectClause1 = isOk readSelectClause "select foo in *; do echo $foo; done" @@ -3431,4 +3432,3 @@ tryWithErrors parser = do return [] runTests = $quickCheckAll -