Instantiation... seems to be broken. Adding unit tests to alert us to that

fact.

original commit: 8256f922f9c9cd2e24261b4309700c7e896c4454
This commit is contained in:
Stevie Strickland 2008-06-18 18:22:16 -04:00
parent a290297005
commit 8cc53d8936

View File

@ -563,6 +563,21 @@
(apply (plambda: (b ...) ([x : Number] . [y : Number ... b]) x)
1 w))]
;; instantiating non-dotted terms
[tc-e (inst (plambda: (a) ([x : a]) x) Integer)
(-Integer . -> . -Integer)]
[tc-e (inst (plambda: (a) [x : a *] (apply + x)) Integer)
((list) -Integer . ->* . -Integer)]
;; instantiating dotted terms
[tc-e (inst (plambda: (a ...) [xs : a ... a] 3) Integer Boolean Integer)
(-Integer B -Integer . -> . -Integer)]
[tc-e (inst (plambda: (a ...) [xs : (a ... a -> Integer) ... a] 3) Integer Boolean Integer)
((-Integer B -Integer . -> . -Integer)
(-Integer B -Integer . -> . -Integer)
(-Integer B -Integer . -> . -Integer)
. -> . -Integer)]
;; error tests
[tc-err (#%variable-reference number?)]
[tc-err (+ 3 #f)]