1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
From: Bhimanavajjula Aditya <bsrk@google.com>
Date: Wed, 9 Sep 2015 12:10:24 +0200
Subject: [14/19] Append a string when using newName on keywords
newName on keywords fails on ghc 7.10. This patch
is a workaround that appends a suffix before
calling newName
Signed-off-by: Bhimanavajjula Aditya <bsrk@google.com>
Signed-off-by: Petr Pudlak <pudlak@google.com>
Reviewed-by: Petr Pudlak <pudlak@google.com>
(cherry picked from commit 1f6838fe46e8b8b0a2abf57987dfa3065093940f)
Signed-off-by: Apollon Oikonomopoulos <apoikos@debian.org>
---
src/Ganeti/THH.hs | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/Ganeti/THH.hs b/src/Ganeti/THH.hs
index 37dbc7e..30225a7 100644
--- a/src/Ganeti/THH.hs
+++ b/src/Ganeti/THH.hs
@@ -1203,8 +1203,13 @@ genDictObject :: (Name -> Field -> Q Exp) -- ^ a saving function
-> Q [Dec]
genDictObject save_fn load_fn sname fields = do
let name = mkName sname
+ -- newName fails in ghc 7.10 when used on keywords
+ newName' "data" = newName "data_ghcBug10599"
+ newName' "instance" = newName "instance_ghcBug10599"
+ newName' "type" = newName "type_ghcBug10599"
+ newName' s = newName s
-- toDict
- fnames <- mapM (newName . fieldVariable) fields
+ fnames <- mapM (newName' . fieldVariable) fields
let pat = conP name (map varP fnames)
tdexp = [| concat $(listE $ zipWith save_fn fnames fields) |]
tdclause <- clause [pat] (normalB tdexp) []
|