From 30c75340e6ca5dddbae8977caebe671bf77f12d3 Mon Sep 17 00:00:00 2001
From: "gabriele.lana" <gabriele.lana@gmail.com>
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
-