Added some tests for checking that constants can't be assigned to in Rain

This commit is contained in:
Neil Brown 2008-03-23 12:14:34 +00:00
parent 7830d82c51
commit b316a7d3f4

View File

@ -238,6 +238,11 @@ checkExpressionTest = TestList
,failAssign 3105 "xu8" (Var "x8") ,failAssign 3105 "xu8" (Var "x8")
,passAssign 3106 "x" (Cast A.Int64 $ int A.Int8 0) (int A.Int8 0) ,passAssign 3106 "x" (Cast A.Int64 $ int A.Int8 0) (int A.Int8 0)
-- Assignment with constants:
,failAssign 3200 "X" (Var "x")
,failAssign 3201 "X" (Var "X")
,failAssign 3202 "X" (Var "xu8")
--Conditionals: --Conditionals:
,passWhileIfSame 4000 $ Var "b" ,passWhileIfSame 4000 $ Var "b"
,passWhileIfSame 4001 $ Mon A.MonadicNot $ Var "b" ,passWhileIfSame 4001 $ Mon A.MonadicNot $ Var "b"
@ -250,6 +255,8 @@ checkExpressionTest = TestList
--Communication: --Communication:
,testAllCheckCommTypes 5000 ,testAllCheckCommTypes 5000
-- TODO check not being able to read into a constant variable
--Time types: --Time types:
,fail 6000 $ Dy (Var "t") A.Plus (Var "x") ,fail 6000 $ Dy (Var "t") A.Plus (Var "x")
,fail 6001 $ Dy (Var "x") A.Minus (Var "t") ,fail 6001 $ Dy (Var "x") A.Minus (Var "t")
@ -439,6 +446,7 @@ checkExpressionTest = TestList
state :: State CompState () state :: State CompState ()
state = do defVar "x" A.Int64 state = do defVar "x" A.Int64
defineConst "X" A.Int64 $ intLiteral 3
defVar "b" A.Bool defVar "b" A.Bool
defVar "xu8" A.Byte defVar "xu8" A.Byte
defVar "xu16" A.UInt16 defVar "xu16" A.UInt16