aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/elaborate.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2010-04-04 12:29:34 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2010-04-04 12:29:34 -0400
commit6a326e3bb3eb16e04f3cca082f0dd67278e85785 (patch)
tree37d9f6d28314bc020e87c05ec9e7826b5e647d44 /src/elaborate.sml
parent9615454c1218330fc2cdfa6b72af53400fa2b2c4 (diff)
Pushing policies through
Diffstat (limited to 'src/elaborate.sml')
-rw-r--r--src/elaborate.sml10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/elaborate.sml b/src/elaborate.sml
index 1651f344..07818a57 100644
--- a/src/elaborate.sml
+++ b/src/elaborate.sml
@@ -2595,6 +2595,7 @@ and sgiOfDecl (d, loc) =
| L'.DCookie (tn, x, n, c) => [(L'.SgiVal (x, n, (L'.CApp (cookieOf (), c), loc)), loc)]
| L'.DStyle (tn, x, n) => [(L'.SgiVal (x, n, styleOf ()), loc)]
| L'.DTask _ => []
+ | L'.DPolicy _ => []
and subSgn' counterparts env strLoc sgn1 (sgn2 as (_, loc2)) =
((*prefaces "subSgn" [("sgn1", p_sgn env sgn1),
@@ -3729,6 +3730,15 @@ and elabDecl (dAll as (d, loc), (env, denv, gs)) =
checkCon env e2' t2 t2';
([(L'.DTask (e1', e2'), loc)], (env, denv, gs2 @ gs1 @ gs))
end
+ | L.DPolicy e1 =>
+ let
+ val (e1', t1, gs1) = elabExp (env, denv) e1
+
+ val t1' = (L'.CModProj (!basis_r, [], "sql_policy"), loc)
+ in
+ checkCon env e1' t1 t1';
+ ([(L'.DPolicy e1', loc)], (env, denv, gs1 @ gs))
+ end
(*val tcs = List.filter (fn TypeClass _ => true | _ => false) (#3 (#2 r))*)
in