1
0
forked from GitHub/gf-core

record type extension freshness check

This commit is contained in:
aarne
2005-02-15 10:06:30 +00:00
parent 1befa19e22
commit f8df4df530
4 changed files with 28 additions and 11 deletions

View File

@@ -24,6 +24,11 @@ import Operations
-- AR 8/2/2005 detached from compile/MkResource
lockRecType :: Ident -> Type -> Err Type
lockRecType c t@(RecType rs) =
let lab = lockLabel c in
return $ if elem lab (map fst rs)
then t --- don't add an extra copy of the lock field
else RecType (rs ++ [(lockLabel c, RecType [])])
lockRecType c t = plusRecType t $ RecType [(lockLabel c, RecType [])]
unlockRecord :: Ident -> Term -> Err Term