changeset 2050:04d7d563a36f

MonoReduce bug involving 'error'
author Adam Chlipala <adam@chlipala.net>
date Wed, 06 Aug 2014 09:50:02 -0400
parents 459ccbf8cd08
children fbfce6f37384
files src/mono_reduce.sml tests/pb.ur tests/pb.urs
diffstat 3 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/mono_reduce.sml	Fri Aug 01 16:11:36 2014 -0400
+++ b/src/mono_reduce.sml	Wed Aug 06 09:50:02 2014 -0400
@@ -685,7 +685,7 @@
                                                           map (fn (p, (EAbs (_, _, _, e), _)) =>
                                                                   (p, swapExpVarsPat (0, patBinds p) e)
                                                                 | (p, (EError (e, (TFun (_, t), _)), loc)) =>
-                                                                  (p, (EError (e, t), loc))
+                                                                  (p, (EError (liftExpInExp (patBinds p) e, t), loc))
                                                                 | (p, e) =>
                                                                   (p, (EApp (liftExpInExp (patBinds p) e,
                                                                              (ERel (patBinds p), loc)), loc)))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/pb.ur	Wed Aug 06 09:50:02 2014 -0400
@@ -0,0 +1,7 @@
+fun api_1 (pb:postBody) (nm:string) : transaction page =
+  return <xml>Processing the request</xml>
+
+fun api (pb:postBody) (v:int) (nm:string) : transaction page =
+  case v of
+      1 => api_1 pb nm
+    | _ => error <xml>Version {[v]} is not supported</xml>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/pb.urs	Wed Aug 06 09:50:02 2014 -0400
@@ -0,0 +1,1 @@
+val api : postBody -> int -> string -> transaction page