;;; If FIND-CLASS is called on a constant class, locate the CLASS-CELL
;;; at load time.
-(deftransform find-class ((name) ((constant-argument symbol)) *
- :when :both)
+(deftransform find-class ((name) ((constant-arg symbol)) *)
(let* ((name (continuation-value name))
(cell (find-class-cell name)))
`(or (class-cell-class ',cell)
(satisfies `(if (funcall #',(second spec) ,object) t nil))
((not and)
(once-only ((n-obj object))
- `(,(first spec) ,@(mapcar #'(lambda (x)
- `(typep ,n-obj ',x))
+ `(,(first spec) ,@(mapcar (lambda (x)
+ `(typep ,n-obj ',x))
(rest spec))))))))))
;;; Do source transformation for TYPEP of a known union type. If a
;;; then we also check whether the layout for the object is invalid
;;; and signal an error if so. Otherwise, look up the indirect
;;; class-cell and call CLASS-CELL-TYPEP at runtime.
-(deftransform %instance-typep ((object spec) (* *) * :node node :when :both)
+(deftransform %instance-typep ((object spec) (* *) * :node node)
(aver (constant-continuation-p spec))
(let* ((spec (continuation-value spec))
(class (specifier-type spec))
(member-type
`(member ,object ',(member-type-members type)))
(args-type
- (compiler-warning "illegal type specifier for TYPEP: ~S"
- (cadr spec))
+ (compiler-warn "illegal type specifier for TYPEP: ~S"
+ (cadr spec))
`(%typep ,object ,spec))
(t nil))
(typecase type
\f
;;;; coercion
-(deftransform coerce ((x type) (* *) * :when :both)
+(deftransform coerce ((x type) (* *) *)
(unless (constant-continuation-p type)
(give-up-ir1-transform))
(let ((tspec (specifier-type (continuation-value type))))