Fix type of quotient on fixnums.

Closes PR13466.
This commit is contained in:
Vincent St-Amour 2013-01-29 12:11:21 -05:00
parent 32529d89c0
commit 32b3dfc528
2 changed files with 12 additions and 1 deletions

View File

@ -0,0 +1,11 @@
#;
(
TR missed opt: invalid-fxquotient.rkt 10:21 (quotient fixnum-min -1) -- out of fixnum range
#f
)
#lang typed/racket/base
(define: fixnum-min : Nonpositive-Fixnum (assert (- (expt 2 30)) fixnum?))
(define: q : Natural (quotient fixnum-min -1)) ; this can't be optimized safely
(fixnum? q) ; should return #f

View File

@ -1336,7 +1336,7 @@
;; we don't have equivalent for fixnums:
;; (quotient min-fixnum -1) -> max-fixnum + 1
(commutative-binop -NonNegFixnum -NonPosFixnum -NonPosFixnum)
(-NonPosFixnum -NonPosFixnum . -> . -NonNegFixnum)
(-NonPosFixnum -NonPosFixnum . -> . -Nat)
(-NonNegFixnum -Nat . -> . -NonNegFixnum)
(-NonNegFixnum -Int . -> . -Fixnum)
(binop -Nat)