# HG changeset patch # User Adam Chlipala # Date 1218913793 14400 # Node ID 2f574c07df2e50699ae455165baf67f4cfdaeab6 # Parent 766b5475477fcee93b0769f3223672d3a22f0e6f Compiling a con-tuple-using test case diff -r 766b5475477f -r 2f574c07df2e src/reduce.sml --- 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 diff -r 766b5475477f -r 2f574c07df2e tests/ctuple.lac --- /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 => + {cdata (f x)} + + +val page_string = page [(string, int)] (fn x => x) + +val main : unit -> page = fn () => + Hi + diff -r 766b5475477f -r 2f574c07df2e tests/tuple.lac --- 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 () => {cdata bizarro_x.1} - \ No newline at end of file +