From c6373ca7c09ec74e50e8b435b9a0387310c1b202 Mon Sep 17 00:00:00 2001 From: Vincent St-Amour Date: Mon, 28 Jun 2010 16:03:04 -0400 Subject: [PATCH] Added special case to the typechecker for (- 1). --- collects/typed-scheme/typecheck/tc-app.rkt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/collects/typed-scheme/typecheck/tc-app.rkt b/collects/typed-scheme/typecheck/tc-app.rkt index 9644e5f21c..2bcecb0faa 100644 --- a/collects/typed-scheme/typecheck/tc-app.rkt +++ b/collects/typed-scheme/typecheck/tc-app.rkt @@ -608,7 +608,8 @@ [(#%plain-app (~and op (~literal -)) v (~and arg2 ((~literal quote) 1))) (add-typeof-expr #'arg2 (ret -PositiveFixnum)) (match-let ([(tc-result1: t) (single-value #'v)]) - (cond + (cond + [(subtype t -PositiveFixnum) (ret (Un -Zero -PositiveFixnum))] [(subtype t (Un -Zero -PositiveFixnum)) (ret -Fixnum)] [(subtype t -ExactPositiveInteger) (ret -Nat)] [else (tc/funapp #'op #'(v arg2) (single-value #'op) (list (ret t) (single-value #'arg2)) expected)]))]