[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug in eql-specializer methods
- To: CommonLoops.pa@Xerox.COM
- Subject: bug in eql-specializer methods
- From: jutta@ztivax.siemens.com (Jutta Estenfeld)
- Date: Thu, 6 Jul 89 15:31:58 -0200
- Redistributed: CommonLoops.pa
I think there is a bug in the Victoria Day (5/22/89) Version of PCL
(Xerox CL (Lyric) and Lucid CL 2.1)
if you define eql-specializer methods for make-instance:
I define a class my-class and a method for make-instance
to do some specific things when my-class will be instantiated:
(defclass my-class () ())
(defmethod make-instance ((class (eql (find-class 'my-class))))
;; some specifics
(format t "make-instance of class ~a~%" class)
(call-next-method))
Evaluating this call of defmethod an error is signalled:
No matching method for the generic-function .. UPDATE-CONSTRUCTORS ..
when called with arguments ((EQL #<Standard-Class A ...>))
If I evaluate the call of defmethod once more the same error is signalled.
It's okay, but now the class standard-class doesn't know its subclasses
any more:
(class-direct-subclasses (find-class 'standard-class))
evaluates to nil.
In all cases (you can also try it with metaclasses) the metaclass
of the class with the eql-specializer method for make-instance
looses the link to its subclasses.
Jutta Estenfeld
Siemens AG, Munich, West Germany
jutta@ztivax.uucp