diff --git a/collects/tests/typed-scheme/unit-tests/typecheck-tests.ss b/collects/tests/typed-scheme/unit-tests/typecheck-tests.ss index 75445e57..a5263dd3 100644 --- a/collects/tests/typed-scheme/unit-tests/typecheck-tests.ss +++ b/collects/tests/typed-scheme/unit-tests/typecheck-tests.ss @@ -642,6 +642,13 @@ ys))) (-polydots (a) ((list) ((list) (a a) . ->... . N) . ->* . ((list) (a a) . ->... . (-lst N))))] + ;; We need to make sure that even if a isn't free in the dotted type, that it gets replicated + ;; appropriately. + [tc-e (inst (plambda: (a ...) [ys : Number ... a] + (apply + ys)) + Boolean String Number) + (N N N . -> . N)] + #;[tc-err (let: ([fact : (Number -> Number) (lambda: ([n : Number]) (if (zero? n) 1 (* n (fact (- n 1)))))]) (fact 20))]