Let mkTupleShow support empty tuples.
authorMatthijs Kooijman <matthijs@stdin.nl>
Thu, 6 Aug 2009 13:47:19 +0000 (15:47 +0200)
committerMatthijs Kooijman <matthijs@stdin.nl>
Thu, 6 Aug 2009 13:47:19 +0000 (15:47 +0200)
cλash/CLasH/VHDL/VHDLTools.hs

index fbe33a7e3ebe56814e4c00a7b187843f8953f593..b2416dc4c4c2b4603f7c6044dcdce904ab5e02af 100644 (file)
@@ -575,13 +575,16 @@ mkTupleShow elemTMs tupleTM = AST.SubProgBody showSpec [] [showExpr]
     showExpr  = AST.ReturnSm (Just $
                   AST.PrimLit "'('" AST.:&: showMiddle AST.:&: AST.PrimLit "')'")
       where
-        showMiddle = foldr1 (\e1 e2 -> e1 AST.:&: AST.PrimLit "','" AST.:&: e2) $
-          map ((genExprFCall showId).
-                AST.PrimName .
-                AST.NSelected .
-                (AST.NSimple tupPar AST.:.:).
-                tupVHDLSuffix)
-              (take tupSize recordlabels)
+        showMiddle = if null elemTMs then
+            AST.PrimLit "''"
+          else
+            foldr1 (\e1 e2 -> e1 AST.:&: AST.PrimLit "','" AST.:&: e2) $
+              map ((genExprFCall showId).
+                    AST.PrimName .
+                    AST.NSelected .
+                    (AST.NSimple tupPar AST.:.:).
+                    tupVHDLSuffix)
+                  (take tupSize recordlabels)
     recordlabels = map (\c -> mkVHDLBasicId [c]) ['A'..'Z']
     tupSize = length elemTMs