Added a function for testing that defines all the occam built-in operators, which helped fix all the failures in OccamPasses
This commit is contained in:
parent
46b1b29e12
commit
aa7d6b9b44
|
@ -49,6 +49,7 @@ import Test.QuickCheck
|
|||
import qualified AST as A
|
||||
import CompState
|
||||
import Errors
|
||||
import Intrinsics
|
||||
import Metadata (emptyMeta)
|
||||
import Pass
|
||||
import Pattern
|
||||
|
@ -645,3 +646,17 @@ instance Die (StateT CompState IO) where
|
|||
fail s
|
||||
|
||||
--}}}
|
||||
|
||||
defineOccamOperators :: CSM m => m ()
|
||||
defineOccamOperators
|
||||
= sequence_
|
||||
[ let n = A.Name emptyMeta $ occamDefaultOperator rawOp ts
|
||||
nd = A.NameDef emptyMeta (A.nameName n) rawOp
|
||||
(A.Function emptyMeta (A.PlainSpec, A.PlainRec)
|
||||
[rt] [A.Formal A.ValAbbrev t (A.Name emptyMeta $ "arg" ++ show i)
|
||||
| (i, t) <- zip [0..] ts
|
||||
] Nothing)
|
||||
A.Original A.NameNonce A.Unplaced
|
||||
in defineName n nd
|
||||
| (rawOp, rt, ts) <- occamIntrinsicOperators
|
||||
]
|
||||
|
|
|
@ -50,6 +50,8 @@ startState
|
|||
undefined
|
||||
defineVariable "var" A.Int
|
||||
|
||||
defineOccamOperators
|
||||
|
||||
-- | Test 'OccamPasses.foldConstants'.
|
||||
testFoldConstants :: Test
|
||||
testFoldConstants = TestList
|
||||
|
|
Loading…
Reference in New Issue
Block a user