changeset 215:2f574c07df2e

Compiling a con-tuple-using test case
author Adam Chlipala <adamc@hcoop.net>
date Sat, 16 Aug 2008 15:09:53 -0400 (2008-08-16)
parents 766b5475477f
children 38b299373676
files src/reduce.sml tests/ctuple.lac tests/tuple.lac
diffstat 3 files changed, 13 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/reduce.sml	Sat Aug 16 15:03:05 2008 -0400
+++ b/src/reduce.sml	Sat Aug 16 15:09:53 2008 -0400
@@ -123,6 +123,9 @@
              (_, _, SOME c') => #1 c'
            | _ => c)
       | CConcat ((CRecord (k, xcs1), loc), (CRecord (_, xcs2), _)) => CRecord (k, xcs1 @ xcs2)
+
+      | CProj ((CTuple cs, _), n) => #1 (List.nth (cs, n - 1))
+
       | _ => c
 
 and reduceCon env = U.Con.mapB {kind = kind, con = con, bind = bindC} env
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/ctuple.lac	Sat Aug 16 15:09:53 2008 -0400
@@ -0,0 +1,9 @@
+val page = fn p :: (Type * Type) => fn f : p.1 -> string => fn x : p.1 => <html><body>
+        {cdata (f x)}
+</body></html>
+
+val page_string = page [(string, int)] (fn x => x)
+
+val main : unit -> page = fn () => <html><body>
+        <a link={page_string "Hi"}>Hi</a>
+</body></html>
--- a/tests/tuple.lac	Sat Aug 16 15:03:05 2008 -0400
+++ b/tests/tuple.lac	Sat Aug 16 15:09:53 2008 -0400
@@ -10,4 +10,4 @@
 
 val main : unit -> page = fn () => <html><body>
         {cdata bizarro_x.1}
-</body></html>
\ No newline at end of file
+</body></html>