From 200bed939aed2ef51b4dce74cec6f6720fe8f7d7 Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Wed, 25 Nov 2009 09:03:08 -0500 Subject: Better error message for link-handler conflicts --- src/tag.sml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/tag.sml b/src/tag.sml index 30720ec9..582a3b8e 100644 --- a/src/tag.sml +++ b/src/tag.sml @@ -41,6 +41,10 @@ structure SM = BinaryMapFn(struct fun kind (k, s) = (k, s) fun con (c, s) = (c, s) +fun both (loc, f) = (ErrorMsg.errorAt loc ("Function " ^ f ^ " needed for both a link and a form"); + TextIO.output (TextIO.stdErr, + "Make sure that the signature of the containing module hides any form handlers.\n")) + fun exp env (e, s) = case e of EApp ( @@ -105,8 +109,7 @@ fun exp env (e, s) = if ek = ek' then () else - ErrorMsg.errorAt loc - "Function needed as both a link and a form "; + both (loc, s); byTag) val e = (EClosure (cn, args), loc) @@ -166,7 +169,7 @@ fun tag file = (if ek = ek' then () else - ErrorMsg.errorAt loc "Function needed for both a link and a form"; + both (loc, s); ([], (env, count, tags, byTag))) end | _ => -- cgit v1.2.3