Added the type of the 1 literals in expressions of the form (- x 1) to
the type table.
This commit is contained in:
parent
894d159123
commit
5d835ded47
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue
Block a user