diff options
author | Joe Crayne <joe@jerkface.net> | 2018-11-21 15:21:01 -0500 |
---|---|---|
committer | Joe Crayne <joe@jerkface.net> | 2018-11-21 15:21:01 -0500 |
commit | 50c2b769e64734c2f6b5a84cdef2de673b1b7d70 (patch) | |
tree | a3d94f8c2f316bfba72d484dc57c729343ef86e8 | |
parent | 1e20d8c100104e15d80c7f5ea61223957460a754 (diff) |
Fix pattern fail for zero-argument functions.
-rw-r--r-- | c2haskell.hs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/c2haskell.hs b/c2haskell.hs index 0e857a9..0c31c93 100644 --- a/c2haskell.hs +++ b/c2haskell.hs | |||
@@ -550,12 +550,14 @@ setBody bdy (CDeclExt (CDecl xs ys pos)) = (CFDefExt (CFunDef xs v [] bdy pos)) | |||
550 | _ -> CDeclr Nothing [] Nothing [] pos | 550 | _ -> CDeclr Nothing [] Nothing [] pos |
551 | 551 | ||
552 | makeStub d = -- @(CDeclExt (CDecl xs ys pos)) = | 552 | makeStub d = -- @(CDeclExt (CDecl xs ys pos)) = |
553 | let oargs:xs = getArgList d | 553 | let rval = True -- todo: Set False for void function. |
554 | (args,vs) = makeParameterNames oargs | ||
555 | name = concatMap identToString $ take 1 $ catMaybes $ sym d | 554 | name = concatMap identToString $ take 1 $ catMaybes $ sym d |
556 | rval = True -- todo: Set False for void function. | ||
557 | msg = "undefined: " ++ HS.prettyPrint (makeAcceptableDecl $ head $ sig d) ++ "\n" | 555 | msg = "undefined: " ++ HS.prettyPrint (makeAcceptableDecl $ head $ sig d) ++ "\n" |
558 | in setBody (stubBody ("f_"++name) vs rval msg) $ changeArgList (const $ args:xs) d | 556 | in case getArgList d of |
557 | oargs:xs -> | ||
558 | let (args,vs) = makeParameterNames oargs | ||
559 | in setBody (stubBody ("f_"++name) vs rval msg) $ changeArgList (const $ args:xs) d | ||
560 | [] -> setBody (stubBody ("f_"++name) [] rval msg) d | ||
559 | 561 | ||
560 | 562 | ||
561 | parameterIdent :: CDeclaration a -> Maybe Ident | 563 | parameterIdent :: CDeclaration a -> Maybe Ident |