The confusion in INVOKE-EMF causes a two-arg call to a reader function to attempt to write the first argument at a slot offset of the second. This is... not ideal.
(defun report-my-unbound-variable (condition stream)
(format stream "The variable ~S is unbound." (my-cell-error-name condition)))
The confusion in INVOKE-EMF causes a two-arg call to a reader function to attempt to write the first argument at a slot offset of the second. This is... not ideal.
(defun report- my-unbound- variable (condition stream)
(my- cell-error- name condition)))
(format stream "The variable ~S is unbound."
(defclass my-unbound-variable ()
((name :reader my-cell-error-name :initarg :name)))
(defmethod print-object ((condition my-unbound- variable) stream) my-unbound- variable condition stream))
(funcall #'report-
(defclass zzz () funcallable- standard- class))
((x :initform 1))
(:metaclass sb-mop:
(defun test ()
(make- instance 'my-unbound- variable :name 'foo)
zzz) ))
(let ((zzz (make-instance 'zzz)))
(assert (typep (slot-value zzz 'x) '(integer 1)))
(funcall (lambda () (my-cell-error-name
(assert (typep (slot-value zzz 'x) '(integer 1)))))