[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Problems with SLOT-VALUE-USING-CLASS and CLOS



I have a problem with writing an around method for SLOT-VALUE-USING-CLASS.
This method should be specialized on the class argument for a self-defined metaclass.
Instantiating a class which is an instance of this metaclass succeeds only, if there is no 
such method for SLOT-VALUE-USING-CLASS defined.
But after defining this method every new defined class for this metaclass can't be instantiatted.

example code:

(defclass my-meta-class (standard-class) )

(defclass my-class1 () 
   ((x :accessor x :initarg :x))
   (:metaclass my-meta-class))

(setf in1 (make-instance 'my-class1)) => all ok for now.

(defmethod slot-value-using-class :around ((class my-meta-class) object slot)
   (let ((result nil))
      (setf result (call-next-method))
      result))

(defclass my-class2 ()
  ((y :accessor y :initarg :y))
  (:metaclass my-meta-class))

(setf in2 (make-instance 'my-class2)) => NIL .

This code runs under Genera 8.1 on a Symbolics.
The body of the Constructor method to build an instance of class MY-CLASS2 contains only
NIL. No actually actions are performed. 

Can anybody help me?

Ekkehard Arleth

<arleth@fzi.de>