- (legal-class-name-p (eval symbol))
- (constantp errorp)
- (member *boot-state* '(braid complete)))
- (let ((symbol (eval symbol))
- (errorp (not (null (eval errorp))))
- (class-cell (make-symbol "CLASS-CELL")))
- `(let ((,class-cell (load-time-value (find-class-cell ',symbol))))
- (or (find-class-cell-class ,class-cell)
- ,(if errorp
- `(find-class-from-cell ',symbol ,class-cell t)
- `(and (sb-kernel:class-cell-class
- ',(sb-kernel:find-class-cell symbol))
- (find-class-from-cell ',symbol ,class-cell nil))))))
+ (legal-class-name-p (setf symbol (constant-form-value symbol)))
+ (constantp errorp)
+ (member *boot-state* '(braid complete)))
+ (let ((errorp (not (null (constant-form-value errorp))))
+ (class-cell (make-symbol "CLASS-CELL")))
+ `(let ((,class-cell (load-time-value (find-class-cell ',symbol))))
+ (or (find-class-cell-class ,class-cell)
+ ,(if errorp
+ `(find-class-from-cell ',symbol ,class-cell t)
+ `(and (classoid-cell-classoid
+ ',(find-classoid-cell symbol))
+ (find-class-from-cell ',symbol ,class-cell nil))))))