Made sure that user types are resolved when type-checking for occam

This commit is contained in:
Neil Brown 2009-03-27 09:44:05 +00:00
parent 574694d078
commit 363ef6a9bc

View File

@ -59,6 +59,13 @@ sameType (A.Chan _ ta) (A.Chan _ tb) = sameType ta tb
sameType (A.ChanEnd dira _ ta) (A.ChanEnd dirb _ tb)
= liftM (dira == dirb &&) (sameType ta tb)
sameType (A.Mobile ta) (A.Mobile tb) = sameType ta tb
-- Resolve user data types:
sameType ta@(A.UserDataType {}) tb
= do ta' <- resolveUserType emptyMeta ta
sameType ta' tb
sameType ta tb@(A.UserDataType {})
= do tb' <- resolveUserType emptyMeta tb
sameType ta tb'
sameType a b = return $ a == b
-- | Check that the second dimension can be used in a context where the first