Mercurial > urweb
diff src/mono_reduce.sml @ 1445:6e6f1643c4e9
To generate server-side source JavaScript, try both the old and new strategies; remove an unsound optimization from MonoOpt and make MonoReduce work harder to compensate
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Mon, 28 Mar 2011 10:37:49 -0400 |
parents | bd6c90f5a428 |
children | 4437b008e0ab |
line wrap: on
line diff
--- a/src/mono_reduce.sml Sun Mar 27 15:51:37 2011 -0400 +++ b/src/mono_reduce.sml Mon Mar 28 10:37:49 2011 -0400 @@ -635,6 +635,7 @@ fun safe (e, _) = case e of EAbs _ => true + | EError _ => true | _ => false in if List.all (safe o #2) pes then @@ -642,6 +643,8 @@ (ECase (liftExpInExp 0 e', map (fn (p, (EAbs (_, _, _, e), _)) => (p, swapExpVarsPat (0, patBinds p) e) + | (p, (EError (e, (TFun (_, t), _)), loc)) => + (p, (EError (e, t), loc)) | _ => raise Fail "MonoReduce ECase") pes, {disc = disc, result = result}), loc)) else