X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=sql%2Fmetaclasses.lisp;h=c778f11d0ccb1821f94ecde3b322063b42e2c5ea;hb=8406b593a00614b99b01c1536f10fbcdd3563a4d;hp=bb02da3899c849151288056ac2080f06ea0532d4;hpb=48720858048d54c9ff6b79dbce56549d01e452d1;p=clsql.git diff --git a/sql/metaclasses.lisp b/sql/metaclasses.lisp index bb02da3..c778f11 100644 --- a/sql/metaclasses.lisp +++ b/sql/metaclasses.lisp @@ -167,9 +167,9 @@ (defun describe-db-layout (class) (flet ((not-db-col (col) - (not (member (nth 2 col) '(nil :base :key)))) + (not (member (nth 2 col) '(nil :base :key)))) (frob-slot (slot) - (let ((type (slot-value slot 'type))) + (let ((type (slot-definition-type slot))) (if (eq type t) (setq type nil)) (list (slot-value slot 'name) @@ -430,6 +430,8 @@ which does type checking before storing a value in a slot." (car list) list)) +(defvar *impl-type-attrib-name* #-clisp 'type #+clisp 'clos::$type) + (defmethod compute-effective-slot-definition ((class standard-db-class) #+kmr-normal-cesd slot-name direct-slots) @@ -442,9 +444,10 @@ which does type checking before storing a value in a slot." (null (specified-type dsd))) (setf (specified-type dsd) (slot-definition-type dsd)) - (setf (slot-value dsd 'type) - (compute-lisp-type-from-slot-specification - dsd (slot-definition-type dsd)))) + (setf #-clisp (slot-value dsd 'type) + #+clisp (slot-definition-type dsd) + (compute-lisp-type-from-slot-specification + dsd (slot-definition-type dsd)))) (let ((esd (call-next-method))) (typecase dsd @@ -508,9 +511,9 @@ which does type checking before storing a value in a slot." (t (let ((type-predicate #+openmcl (slot-value esd 'ccl::type-predicate))) #-openmcl (declare (ignore type-predicate)) - (change-class esd 'view-class-effective-slot-definition - #+allegro :name - #+allegro (slot-definition-name dsd)) + #-clisp (change-class esd 'view-class-effective-slot-definition + #+allegro :name + #+allegro (slot-definition-name dsd)) #+openmcl (setf (slot-value esd 'ccl::type-predicate) type-predicate))