summaryrefslogtreecommitdiff
path: root/src/rpcify.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2009-02-15 12:33:41 -0500
committerGravatar Adam Chlipala <adamc@hcoop.net>2009-02-15 12:33:41 -0500
commitb228a55b0c40fc309c5bbbc9e4c15c3eebf82880 (patch)
tree82ba6f2b8547742ce5c12abb628e21a7843db234 /src/rpcify.sml
parente2d8010cf8e5334b58713404e9e146b18292ef73 (diff)
Initial parsing of RPC results
Diffstat (limited to 'src/rpcify.sml')
-rw-r--r--src/rpcify.sml9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/rpcify.sml b/src/rpcify.sml
index 45d178ee..6601a14b 100644
--- a/src/rpcify.sml
+++ b/src/rpcify.sml
@@ -103,8 +103,8 @@ fun frob file =
let
fun doOne ((_, n, t, _, _), tfuncs) =
let
- fun crawl ((t, _), args) =
- case t of
+ fun crawl (t, args) =
+ case #1 t of
CApp ((CFfi ("Basis", "transaction"), _), ran) => SOME (rev args, ran)
| TFun (arg, rest) => crawl (rest, arg :: args)
| _ => NONE
@@ -130,7 +130,7 @@ fun frob file =
trans1), _),
trans2) =>
(case (serverSide trans1, clientSide trans1, serverSide trans2, clientSide trans2) of
- (true, false, false, _) =>
+ (true, false, false, true) =>
let
fun getApp (e, args) =
case #1 e of
@@ -156,7 +156,8 @@ fun frob file =
val ran =
case IM.find (tfuncs, n) of
- NONE => raise Fail "Rpcify: Undetected transaction function"
+ NONE => (Print.prefaces "BAD" [("e", CorePrint.p_exp CoreEnv.empty (e, loc))];
+ raise Fail "Rpcify: Undetected transaction function")
| SOME (_, ran) => ran
in
(EServerCall (n, args, trans2, ran), st)