From cb6e88183a8c126118de373bfd98f3bef5e714a2 Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Sun, 17 May 2009 13:25:57 -0400 Subject: Corify FFI datatypes properly; eliminate nested JavaScript markers --- src/corify.sml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/corify.sml') diff --git a/src/corify.sml b/src/corify.sml index 6793cd32..a4979790 100644 --- a/src/corify.sml +++ b/src/corify.sml @@ -824,6 +824,9 @@ fun corifyDecl mods (all as (d, loc : EM.span), st) = ListUtil.foldlMap (fn ((x, n, xs, xnts), (ds', st, cmap, conmap)) => let + val k' = foldl (fn (_, k') => (L'.KArrow (k, k'), loc)) + k xs + val dk = ElabUtil.classifyDatatype xnts val (st, n') = St.bindCon st x n val (xnts, (ds', st, cmap, conmap)) = @@ -885,12 +888,14 @@ fun corifyDecl mods (all as (d, loc : EM.span), st) = ((x', n, to), (d :: ds', st, cmap, conmap)) end) (ds', st, cmap, conmap) xnts + + val d = (L'.DCon (x, n', k', (L'.CFfi (m, x), loc)), loc) in - ((x, n', xs, xnts), (ds', st, cmap, conmap)) + ((x, n', xs, xnts), (d :: ds', st, cmap, conmap)) end) ([], st, cmap, conmap) dts in - (ds' @ (L'.DDatatype dts, loc) :: ds, + (List.revAppend (ds', ds), cmap, conmap, st, -- cgit v1.2.3