chiark / gitweb /
src/class-make-impl.lisp: Introduce property to choose initarg class.
[sod] / src / class-make-impl.lisp
index 7263e44f7fce100afe9284d2b4d161a0c2d9799f..3c5bb3579acebe6332e1c0193d5c58ae693f78b0 100644 (file)
@@ -144,9 +144,10 @@ (defmethod shared-initialize :after
 
 (defmethod make-sod-user-initarg
     ((class sod-class) name type pset &optional default location)
-  (declare (ignore pset))
   (with-slots (initargs) class
-    (push (make-instance 'sod-user-initarg :location (file-location location)
+    (push (make-instance (get-property pset :initarg-class :symbol
+                                      'sod-user-initarg)
+                        :location (file-location location)
                         :class class :name name :type type :default default)
          initargs)))
 
@@ -157,10 +158,10 @@ (defmethod make-sod-slot-initarg
 
 (defmethod make-sod-slot-initarg-using-slot
     ((class sod-class) name (slot sod-slot) pset &optional location)
-  (declare (ignore pset))
   (with-slots (initargs) class
     (with-slots ((type %type)) slot
-      (push (make-instance 'sod-slot-initarg
+      (push (make-instance (get-property pset :initarg-class :symbol
+                                        'sod-slot-initarg)
                           :location (file-location location)
                           :class class :name name :type type :slot slot)
            initargs))))