Fix TR internal error

The following expression would trigger an arity error:
  (subst-all
   (make-simple-substitution (list 'a 'z) (list (-val 3) (-val 5)))
   (make-ListDots (make-F 'z) 'a))

original commit: 8978c83b18bed1fe61f6bef0e0432e8d6108ff0d
This commit is contained in:
Asumu Takikawa 2013-08-26 15:12:16 -04:00
parent bd7fc20134
commit c43372a4d2

View File

@ -67,13 +67,13 @@
(map sb kws))])]
[#:ValuesDots types dty dbound
(cond
[(ormap (lambda (x) (and (equal? dbound x) (not bound-tvar? x))) names) =>
[(ormap (lambda (x) (and (equal? dbound x) (not (bound-tvar? x)))) names) =>
(lambda (name)
(int-err "substitute used on ... variable ~a in type ~a" name target))]
[else (make-ValuesDots (map sb types) (sb dty) dbound)])]
[#:ListDots dty dbound
(cond
[(ormap (lambda (x) (and (equal? dbound x) (not bound-tvar? x))) names) =>
[(ormap (lambda (x) (and (equal? dbound x) (not (bound-tvar? x)))) names) =>
(lambda (name)
(int-err "substitute used on ... variable ~a in type ~a" name target))]
[else (make-ListDots (sb dty) dbound)])])