:accessor specified-type
:initarg specified-type
:initform nil
- :documentation "Internal slot storing the :type specified by user.")))
+ :documentation "Internal slot storing the :type specified by user.")
+ (autoincrement-sequence
+ :accessor view-class-slot-autoincrement-sequence
+ :initarg :autoincrement-sequence
+ :initform nil
+ :documentation "A string naming the (possibly automatically generated) sequence
+for a slot with an :auto-increment constraint.")))
(defparameter *db-info-lambda-list*
'(&key join-class
(setf (specified-type esd)
(delistify-dsd (specified-type dsd)))
- ;; The type-check-function is computed at defclass expansion,
- ;; which is too early for the CLSQL type conversion to take
- ;; place. This gets rid of it. It's ugly but it's better
- ;; than nothing -wcp10/4/10.
- #+sbcl (setf (slot-value esd 'sb-pcl::%type-check-function) nil)
+ ;; In older SBCL's the type-check-function is computed at
+ ;; defclass expansion, which is too early for the CLSQL type
+ ;; conversion to take place. This gets rid of it. It's ugly
+ ;; but it's better than nothing -wcp10/4/10.
+ #+(and sbcl #.(cl:if (cl:and (cl:find-package :sb-pcl)
+ (cl:find-symbol "%TYPE-CHECK-FUNCTION" :sb-pcl))
+ '(cl:and) '(cl:or)))
+ (setf (slot-value esd 'sb-pcl::%type-check-function) nil)
)
;; all other slots
result))
(defun slotdef-for-slot-with-class (slot class)
- (find-if #'(lambda (d) (eql slot (slot-definition-name d)))
- (class-slots class)))
+ (typecase slot
+ (standard-slot-definition slot)
+ (symbol
+ (find-if #'(lambda (d) (eql slot (slot-definition-name d)))
+ (class-slots class)))))
#+ignore
(eval-when (:compile-toplevel :load-toplevel :execute)