From 0c647544df361d04aa63b7cdfc37697e17787f18 Mon Sep 17 00:00:00 2001 From: Sam Tobin-Hochstadt Date: Mon, 18 May 2009 22:18:19 +0000 Subject: [PATCH] Parse (A -> B : C) correctly, B can't be a `values' svn: r14858 original commit: e269f7aa7c0bf75b823e5f67931b4a9c5fb61723 --- collects/typed-scheme/private/parse-type.ss | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/collects/typed-scheme/private/parse-type.ss b/collects/typed-scheme/private/parse-type.ss index b72a67c4..ad172a1d 100644 --- a/collects/typed-scheme/private/parse-type.ss +++ b/collects/typed-scheme/private/parse-type.ss @@ -356,7 +356,8 @@ (eq? (syntax-e #':) ':)) (begin (add-type-name-reference (stx-cadr stx)) - (make-pred-ty (list (parse-type #'dom)) (parse-values-type #'rng) (parse-type #'pred-ty)))] + ;; use parse-type instead of parse-values-type because we need to add the filters from the pred-ty + (make-pred-ty (list (parse-type #'dom)) (parse-type #'rng) (parse-type #'pred-ty)))] [(dom ... rest ::: -> rng) (and (eq? (syntax-e #'->) '->) (eq? (syntax-e #':::) '*))