Fix creation of a reversed List type from ListDots substitution.

original commit: a9f6ea69bfbb23d4e6ab1b5ebfcb6bb9e3b3c05a
This commit is contained in:
Stevie Strickland 2010-08-12 17:38:18 -04:00
parent da31c3f9a2
commit 21da67fbd9
2 changed files with 4 additions and 1 deletions

View File

@ -640,6 +640,9 @@
(apply (plambda: (b ...) ([x : Number] . [y : Number ... b]) x)
1 w))
(-polydots (a) ((list -String) (N a) . ->... . N))]
[tc-e/t (let ([f (plambda: (a ...) [w : a ... a] w)])
(f 1 "hello" #\c))
(-pair -PositiveFixnum (-pair -String (-pair -Char (-val null))))]
;; instantiating non-dotted terms
[tc-e/t (inst (plambda: (a) ([x : a]) x) Integer)
(make-Function (list (make-arr* (list -Integer) -Integer

View File

@ -71,7 +71,7 @@
;; We need to recur first, just to expand out any dotted usages of this.
(let ([expanded (sb dty)])
(for/fold ([t (make-Value null)])
([img images])
([img (reverse images)])
(make-Pair (substitute img name expanded) t)))
(make-ListDots (sb dty) dbound))]
[#:ValuesDots types dty dbound