diff --git a/collects/typed-scheme/typecheck/tc-app.rkt b/collects/typed-scheme/typecheck/tc-app.rkt index f1ffb5c328..ff4e3f689f 100644 --- a/collects/typed-scheme/typecheck/tc-app.rkt +++ b/collects/typed-scheme/typecheck/tc-app.rkt @@ -13,7 +13,7 @@ ;; end fixme (for-syntax syntax/parse scheme/base (utils tc-utils)) (private type-annotation) - (types utils abbrev union subtype resolve convenience) + (types utils abbrev union subtype resolve convenience type-table) (utils tc-utils) (only-in srfi/1 alist-delete) (except-in (env type-environments) extend) @@ -544,6 +544,7 @@ [_ (int-err "bad expected: ~a" expected)])] ;; special case for `-' used like `sub1' [(#%plain-app (~and op (~literal -)) v (~and arg2 ((~literal quote) 1))) + (add-typeof-expr #'arg2 -Nat) (match-let ([(tc-result1: t) (single-value #'v)]) (if (subtype t -ExactPositiveInteger) (ret -Nat) diff --git a/collects/typed-scheme/typecheck/tc-expr-unit.rkt b/collects/typed-scheme/typecheck/tc-expr-unit.rkt index 6a102aca0a..8ebd415669 100644 --- a/collects/typed-scheme/typecheck/tc-expr-unit.rkt +++ b/collects/typed-scheme/typecheck/tc-expr-unit.rkt @@ -384,7 +384,7 @@ (and (identifier? #'name*) (free-identifier=? #'name #'name*)) (match expected [(tc-result1: t) - (with-lexical-env/extend (list #'name) (list t) (tc-expr/check/internal #'expr expected))] + (with-lexical-env/extend (list #'name) (list t) (tc-expr/check #'expr expected))] [(tc-results: ts) (tc-error/expr #:return (ret (Un)) "Expected ~a values, but got only 1" (length ts))])] [(letrec-values ([(name ...) expr] ...) . body)