aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/elaborate.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adam@chlipala.net>2014-05-02 17:16:02 -0400
committerGravatar Adam Chlipala <adam@chlipala.net>2014-05-02 17:16:02 -0400
commit77b4d9b9397aefc41ae0c6465a75874c497d945c (patch)
tree1249a913f37685611f686a4c5db3475723c93d21 /src/elaborate.sml
parent1580340ec252e4e399c2c1d2b403974f49c3a084 (diff)
Monadic bind supports patterns
Diffstat (limited to 'src/elaborate.sml')
-rw-r--r--src/elaborate.sml7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/elaborate.sml b/src/elaborate.sml
index 5dd86f18..97ac610b 100644
--- a/src/elaborate.sml
+++ b/src/elaborate.sml
@@ -2183,8 +2183,13 @@ fun elabExp (env, denv) (eAll as (e, loc)) =
(e', (#1 (chaseUnifs t'), loc), enD gs2 @ gs1)
end
- | L.ERecord xes =>
+ | L.ERecord (xes, flex) =>
let
+ val () = if flex then
+ expError env (IllegalFlex eAll)
+ else
+ ()
+
val (xes', gs) = ListUtil.foldlMap (fn ((x, e), gs) =>
let
val (x', xk, gs1) = elabCon (env, denv) x