194 |
(not (eq tem '*))) |
(not (eq tem '*))) |
195 |
; (not (consp tem))) ;; propagate multiple-value types, CM 20041221 |
; (not (consp tem))) ;; propagate multiple-value types, CM 20041221 |
196 |
(let* ((be (and (not (cddr args)) (get f 'result-type-from-bounded-args))) |
(let* ((be (and (not (cddr args)) (get f 'result-type-from-bounded-args))) |
197 |
(ba (and be (funcall be f (car args) (cadr args))))) |
(ba (and be (apply be f (mapcar #'coerce-to-one-value args))))) |
198 |
(when ba |
(when ba |
199 |
(return-from result-type-from-args ba))) |
(return-from result-type-from-args ba))) |
200 |
(dolist (v '(inline-always inline-unsafe)) |
(dolist (v '(inline-always inline-unsafe)) |
205 |
(= (length args) (length (car w))) |
(= (length args) (length (car w))) |
206 |
(do ((a args (cdr a)) (b (car w) (cdr b))) |
(do ((a args (cdr a)) (b (car w) (cdr b))) |
207 |
((null a) t) |
((null a) t) |
208 |
(unless (or (eq (car a) (car b)) |
(unless (and (car a) (car b) |
209 |
(type>= (car b) (car a))) |
(or (eq (car a) (car b)) |
210 |
|
(type>= (car b) (car a)))) |
211 |
(return nil)))) |
(return nil)))) |
212 |
(return-from result-type-from-args (second w))))))) |
(return-from result-type-from-args (second w))))))) |
213 |
|
|