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))
This commit is contained in:
Asumu Takikawa 2013-08-26 15:12:16 -04:00
parent dc8ae059c6
commit 8978c83b18

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)])])