mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-20 19:42:30 -08:00
(EXPT FIXNUM INTEGER) was inferred to be of type FIXNUM.
This commit is contained in:
parent
18596a1368
commit
3b4ed64ded
1 changed files with 5 additions and 2 deletions
|
|
@ -219,13 +219,16 @@
|
|||
|
||||
(def-type-propagator expt (fname base exponent)
|
||||
;; Rules:
|
||||
;; (expt number-type integer) -> number-type
|
||||
;; (expt fixnum integer) -> integer
|
||||
;; (expt number-type integer) -> number-type
|
||||
;; (expt number-type1 number-type2) -> (max-float number-type1 number-type2)
|
||||
;;
|
||||
(let ((exponent (ensure-real-type exponent)))
|
||||
(values (list base exponent)
|
||||
(cond ((eql exponent 'integer)
|
||||
base)
|
||||
(if (subtypep base 'fixnum)
|
||||
'integer
|
||||
base))
|
||||
((type>= '(real 0 *) base)
|
||||
(let* ((exponent (ensure-nonrational-type exponent)))
|
||||
(maximum-number-type exponent base)))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue