Mercurial > urweb
comparison src/monoize.sml @ 908:ed06e25c70ef
Convert to requiring explicit 'rpc' marker
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Sat, 22 Aug 2009 12:55:18 -0400 |
parents | 5fe49effbc83 |
children | 8e540df3294d |
comparison
equal
deleted
inserted
replaced
907:5fe49effbc83 | 908:ed06e25c70ef |
---|---|
3135 val (e2, fm) = monoExp (Env.pushERel env x t, st, fm) e2 | 3135 val (e2, fm) = monoExp (Env.pushERel env x t, st, fm) e2 |
3136 in | 3136 in |
3137 ((L'.ELet (x, t', e1, e2), loc), fm) | 3137 ((L'.ELet (x, t', e1, e2), loc), fm) |
3138 end | 3138 end |
3139 | 3139 |
3140 | L.EServerCall (n, es, ek, t) => | 3140 | L.EServerCall (n, es, ek, t, (L.TRecord (L.CRecord (_, []), _), _)) => |
3141 let | 3141 let |
3142 val t = monoType env t | 3142 val t = monoType env t |
3143 val (_, ft, _, name) = Env.lookupENamed env n | 3143 val (_, ft, _, name) = Env.lookupENamed env n |
3144 val (es, fm) = ListUtil.foldlMap (fn (e, fm) => monoExp (env, st, fm) e) fm es | 3144 val (es, fm) = ListUtil.foldlMap (fn (e, fm) => monoExp (env, st, fm) e) fm es |
3145 | 3145 |
3190 val e = liftExpInExp 0 e | 3190 val e = liftExpInExp 0 e |
3191 val e = (L'.EAbs ("_", unit, unit, e), loc) | 3191 val e = (L'.EAbs ("_", unit, unit, e), loc) |
3192 in | 3192 in |
3193 (e, fm) | 3193 (e, fm) |
3194 end | 3194 end |
3195 | L.EServerCall _ => (E.errorAt loc "Full scope of server call continuation isn't known"; | |
3196 Print.eprefaces' [("Expression", CorePrint.p_exp env all)]; | |
3197 (dummyExp, fm)) | |
3195 | 3198 |
3196 | L.EKAbs _ => poly () | 3199 | L.EKAbs _ => poly () |
3197 | L.EKApp _ => poly () | 3200 | L.EKApp _ => poly () |
3198 end | 3201 end |
3199 | 3202 |