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