[c2hs] #50: Parenthesize marshallers, to preserve Haskell expressions

#50: Parenthesize marshallers, to preserve Haskell expressions --------------------+------------------------------------------------------- Reporter: guest | Type: defect Status: new | Priority: normal Milestone: | Component: general Version: 0.16.0 | Keywords: --------------------+------------------------------------------------------- Marshallers can contain Haskell expressions; however, c2hs substitutes those expressions into Haskell code as function calls and adds arguments to the end, which limits these Haskell expressions to simple function calls with one or more arguments. Add parentheses to these expressions, allowing them to contain arbitrary Haskell expressions with lower precedence than function calls, such as operators. {{{ diff -rN -u old-c2hs/src/C2HS/Gen/Bind.hs new-c2hs/src/C2HS/Gen/Bind.hs --- old-c2hs/src/C2HS/Gen/Bind.hs 2012-10-07 19:24:21.493527302 -0700 +++ new-c2hs/src/C2HS/Gen/Bind.hs 2012-10-07 19:24:21.521526937 -0700 @@ -884,7 +884,7 @@ interr "GenBind.funDef: marshRes: no default?" marshBody (Left ide) = identToString ide - marshBody (Right str) = str + marshBody (Right str) = "(" ++ str ++ ")" retArgs' = case parm' of CHSParm _ _ _ (Just (_, CHSVoidArg)) _ -> retArgs @@ -962,7 +962,7 @@ retArg = if omArgKind == CHSVoidArg || omArgKind == CHSIOVoidArg then "" else outBndr marshBody (Left ide) = identToString ide - marshBody (Right str) = str + marshBody (Right str) = "(" ++ str ++ ")" in (funArg, marshIn, callArgs, marshOut, retArg) marshArg _ _ = interr "GenBind.funDef: Missing default?" }}} -- Ticket URL: http://hackage.haskell.org/trac/c2hs/ticket/50 c2hs http://www.cse.unsw.edu.au/~chak/haskell/c2hs/ C->Haskell, An Interface Generator for Haskell

#50: Parenthesize marshallers, to preserve Haskell expressions --------------------+------------------------------------------------------- Reporter: guest | Type: defect Status: closed | Priority: normal Milestone: | Component: general Version: 0.16.0 | Resolution: fixed Keywords: | --------------------+------------------------------------------------------- Changes (by duncan): * status: new => closed * resolution: => fixed Comment: Applied, thanks! -- Ticket URL: http://hackage.haskell.org/trac/c2hs/ticket/50#comment:1 c2hs http://www.cse.unsw.edu.au/~chak/haskell/c2hs/ C->Haskell, An Interface Generator for Haskell
participants (1)
-
c2hs