[armedbear-devel] Unbound initargs slot in slot-definitions

Stas Boukarev stassats at gmail.com
Sun Aug 26 13:06:07 UTC 2012


Rudolf Schlatte <rudi at constantly.at> writes:

> Hi Stas,
>
> This should be fixed in r14134, together with a bug reported by Pascal Costanza.

Now another problem, almost the same code, except for slot definitions:

(defpackage test2
  (:use :cl :mop))

(in-package test2)

(defclass storable-class (standard-class)
  ())

(defmethod validate-superclass
    ((class standard-class) (superclass storable-class))
  t)

(defmethod validate-superclass
    ((class storable-class) (superclass standard-class))
  t)

;;;

(defclass identifiable ()
  ((id :accessor id
       :initform 1))
  (:metaclass storable-class))


Now ID slot is unbound and bound at the same time, despite having an
initform.

(describe  (make-instance 'identifiable))
#<IDENTIFIABLE {181F4B24}> is an instance of #<STORABLE-CLASS IDENTIFIABLE {1E4B2D10}>.
The following slots have :INSTANCE allocation:
  ID       unbound

(slot-boundp (make-instance 'identifiable) 'id)
=>
NIL

(slot-value (make-instance 'identifiable) 'id)
=>
1

-- 
With best regards, Stas.




More information about the armedbear-devel mailing list