diff --git a/typed-racket-lib/typed-racket/infer/infer-unit.rkt b/typed-racket-lib/typed-racket/infer/infer-unit.rkt index 1208c9aa..4df1930e 100644 --- a/typed-racket-lib/typed-racket/infer/infer-unit.rkt +++ b/typed-racket-lib/typed-racket/infer/infer-unit.rkt @@ -320,7 +320,7 @@ (% move-dotted-rest-to-dmap (cgen (context-add-var context dbound) s-dty t-dty) dbound dbound*)))] [((seq ss (dotted-end s-dty dbound)) (seq ts (dotted-end t-dty dbound*))) - #:when (inferable-index? context dbound*) + #:return-unless (inferable-index? context dbound*) #f #:return-unless (= (length ss) (length ts)) #f (% cset-meet (cgen/list context ss ts) diff --git a/typed-racket-test/succeed/gh-issue-336.rkt b/typed-racket-test/succeed/gh-issue-336.rkt new file mode 100644 index 00000000..d244fbc5 --- /dev/null +++ b/typed-racket-test/succeed/gh-issue-336.rkt @@ -0,0 +1,8 @@ +#lang typed/racket + +;; Test for github issue #336 + +(: foo (∀ (A ... B ...) (→ (List (→ A ... B) ...) + Any))) +(define (foo f) + (apply conjoin f)) \ No newline at end of file