diff options
author | Adam Chlipala <adam@chlipala.net> | 2014-08-06 09:50:02 -0400 |
---|---|---|
committer | Adam Chlipala <adam@chlipala.net> | 2014-08-06 09:50:02 -0400 |
commit | ba4af1234ee438d5c5cb87ba624b03b69135ab93 (patch) | |
tree | 75fc2f6ed811ac4f8153c5e8b215835b912c4c1a | |
parent | ee4ec02054d2ec9c07cb2d0e0350f0d0cfd253a9 (diff) |
MonoReduce bug involving 'error'
-rw-r--r-- | src/mono_reduce.sml | 2 | ||||
-rw-r--r-- | tests/pb.ur | 7 | ||||
-rw-r--r-- | tests/pb.urs | 1 |
3 files changed, 9 insertions, 1 deletions
diff --git a/src/mono_reduce.sml b/src/mono_reduce.sml index f1a6758d..50553560 100644 --- a/src/mono_reduce.sml +++ b/src/mono_reduce.sml @@ -685,7 +685,7 @@ fun reduce (file : file) = 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))) diff --git a/tests/pb.ur b/tests/pb.ur new file mode 100644 index 00000000..e6e5bd5c --- /dev/null +++ b/tests/pb.ur @@ -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> diff --git a/tests/pb.urs b/tests/pb.urs new file mode 100644 index 00000000..9def0871 --- /dev/null +++ b/tests/pb.urs @@ -0,0 +1 @@ +val api : postBody -> int -> string -> transaction page |