Mercurial > urweb
comparison src/corify.sml @ 705:e6706a1df013
Track uniqueness sets in table types
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Tue, 07 Apr 2009 14:11:32 -0400 |
parents | 70cbdcf5989b |
children | d8217b4cb617 |
comparison
equal
deleted
inserted
replaced
704:70cbdcf5989b | 705:e6706a1df013 |
---|---|
974 (ds, st) | 974 (ds, st) |
975 end | 975 end |
976 end | 976 end |
977 | _ => raise Fail "Non-const signature for 'export'") | 977 | _ => raise Fail "Non-const signature for 'export'") |
978 | 978 |
979 | L.DTable (_, x, n, c, e) => | 979 | L.DTable (_, x, n, c, e, cc) => |
980 let | 980 let |
981 val (st, n) = St.bindVal st x n | 981 val (st, n) = St.bindVal st x n |
982 val s = relify (doRestify (mods, x)) | 982 val s = relify (doRestify (mods, x)) |
983 in | 983 in |
984 ([(L'.DTable (x, n, corifyCon st c, s, corifyExp st e), loc)], st) | 984 ([(L'.DTable (x, n, corifyCon st c, s, corifyExp st e, corifyCon st cc), loc)], st) |
985 end | 985 end |
986 | L.DSequence (_, x, n) => | 986 | L.DSequence (_, x, n) => |
987 let | 987 let |
988 val (st, n) = St.bindVal st x n | 988 val (st, n) = St.bindVal st x n |
989 val s = relify (doRestify (mods, x)) | 989 val s = relify (doRestify (mods, x)) |
1050 | L.DValRec vis => foldl (fn ((_, n', _, _), n) => Int.max (n, n)) n vis | 1050 | L.DValRec vis => foldl (fn ((_, n', _, _), n) => Int.max (n, n)) n vis |
1051 | L.DSgn (_, n', _) => Int.max (n, n') | 1051 | L.DSgn (_, n', _) => Int.max (n, n') |
1052 | L.DStr (_, n', _, str) => Int.max (n, Int.max (n', maxNameStr str)) | 1052 | L.DStr (_, n', _, str) => Int.max (n, Int.max (n', maxNameStr str)) |
1053 | L.DFfiStr (_, n', _) => Int.max (n, n') | 1053 | L.DFfiStr (_, n', _) => Int.max (n, n') |
1054 | L.DExport _ => n | 1054 | L.DExport _ => n |
1055 | L.DTable (_, _, n', _, _) => Int.max (n, n') | 1055 | L.DTable (_, _, n', _, _, _) => Int.max (n, n') |
1056 | L.DSequence (_, _, n') => Int.max (n, n') | 1056 | L.DSequence (_, _, n') => Int.max (n, n') |
1057 | L.DDatabase _ => n | 1057 | L.DDatabase _ => n |
1058 | L.DCookie (_, _, n', _) => Int.max (n, n')) | 1058 | L.DCookie (_, _, n', _) => Int.max (n, n')) |
1059 0 ds | 1059 0 ds |
1060 | 1060 |