From 886af4ff9ffb9d0a1718796e1133806704177d2a Mon Sep 17 00:00:00 2001 From: Alan Zimmerman Date: Wed, 5 Mar 2014 16:13:28 +0000 Subject: [PATCH] Sorted ParStmt layout for GHC 7.4.2 --- src/Language/Haskell/Refact/Utils/Layout.hs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/Language/Haskell/Refact/Utils/Layout.hs b/src/Language/Haskell/Refact/Utils/Layout.hs index d10f1f62a..b819436c4 100644 --- a/src/Language/Haskell/Refact/Utils/Layout.hs +++ b/src/Language/Haskell/Refact/Utils/Layout.hs @@ -695,7 +695,23 @@ allocStmt (GHC.L l (GHC.ParStmt blocks _ _)) toks = r ++ (makeLeafFromToks toks2) ++ (makeLeafFromToks toks')] #else -allocStmt (GHC.L _ (GHC.ParStmt stmts _ _ _)) toks = error "allocStmt ParStmt undefined" +allocStmt (GHC.L l (GHC.ParStmt blocks _ _ _)) toks = r + where + (s1,blocksToks,toks') = splitToksIncComments (ghcSpanStartEnd l) toks + (blocksLayout,toks2) = foldl' allocParStmtBlock ([],blocksToks) blocks + r = [makeGroup $ strip $ (makeLeafFromToks s1) ++ blocksLayout + ++ (makeLeafFromToks toks2) + ++ (makeLeafFromToks toks')] + + allocParStmtBlock :: ([LayoutTree],[PosToken]) + -> ([GHC.LStmt GHC.RdrName],[GHC.RdrName]) -> ([LayoutTree],[PosToken]) + allocParStmtBlock (acc,toks) (stmts,ns) = (r1,toks') + where + (s1,stmtToks,toks') = splitToksForList stmts toks + stmtLayout = allocList stmts stmtToks allocStmt + r1 = [makeGroup $ strip $ (makeLeafFromToks s1) + ++ stmtLayout] +-- ParStmt [([LStmt idL], [idR])] (SyntaxExpr idR) (SyntaxExpr idR) (SyntaxExpr idR) #endif allocStmt (GHC.L _ (GHC.TransStmt _ _ _ _ _ _ _ _ )) toks = error "allocStmt TransStmt undefined" allocStmt (GHC.L _ (GHC.RecStmt _ _ _ _ _ _ _ _ _)) toks = error "allocStmt RecStmt undefined"