From 50b7a0b190ffea945aa012ad1be005bf3bd15030 Mon Sep 17 00:00:00 2001 From: Sam Tobin-Hochstadt Date: Wed, 12 Aug 2009 20:42:20 +0000 Subject: [PATCH] improve types for numeric predicates fix pr 9767 svn: r15717 --- collects/typed-scheme/private/base-env.ss | 6 +++--- collects/typed-scheme/typecheck/tc-lambda-unit.ss | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/collects/typed-scheme/private/base-env.ss b/collects/typed-scheme/private/base-env.ss index d8f02a39af..3267d76524 100644 --- a/collects/typed-scheme/private/base-env.ss +++ b/collects/typed-scheme/private/base-env.ss @@ -409,9 +409,9 @@ [exact->inexact (N . -> . N)] [inexact->exact (N . -> . N)] -[real? (Univ . -> . B)] -[complex? (Univ . -> . B)] -[rational? (Univ . -> . B)] +[real? (Univ . -> . B : (-LFS (list (-filter N)) (list)))] +[complex? (Univ . -> . B : (-LFS (list (-filter N)) (list)))] +[rational? (Univ . -> . B : (-LFS (list (-filter N)) (list)))] [floor (-> N N)] [ceiling (-> N N)] [truncate (-> N N)] diff --git a/collects/typed-scheme/typecheck/tc-lambda-unit.ss b/collects/typed-scheme/typecheck/tc-lambda-unit.ss index aaceea3d68..d19839a7c1 100644 --- a/collects/typed-scheme/typecheck/tc-lambda-unit.ss +++ b/collects/typed-scheme/typecheck/tc-lambda-unit.ss @@ -69,8 +69,7 @@ (make lam-result (map list arg-list arg-types) null rest-ty drest (tc-exprs/check (syntax->list body) ret-ty)))) (when (or (not (= arg-len tys-len)) - (and rest (and (not rest-ty) - (not drest)))) + (and (or rest-ty drest) (not rest))) (tc-error/delayed (expected-str tys-len rest-ty drest arg-len rest))) (cond [(not rest)