On 20 March 2011 03:06, Zach Beane <[email protected]> wrote:

> "Chun Tian (binghe)" <[email protected]> writes:

>> (defclass a-class ()
>>   ((slot :type 'a-subclass)))
>>
>> (defclass a-subclass (a-class)
>>   ())
>>
>> When compiling the first class definition, SBCL warn that the type
>> A-SUBCLASS haven't been defined
>
> I can't reproduce. Is this an oversimplification of your actual
> problem?

Me neither, but...

(declaim (optimize safety))

(defclass a-class ()
 ((slot :type 'a-subclass)))

(defclass a-subclass (a-class)
 ())

(defmethod foo ((x a-class) y)
  (setf (slot-value x 'slot) y))

gives:

; caught WARNING:
;   Undefined type 'A-SUBCLASS. The name starts with QUOTE: probably use of a
;   quoted type name in a context where the name is not evaluated.

Replace 'a-subclass with a-subclass, and modern (1.0.45.11 or later, I
would guess) SBCL is silent and happy. (Though really SBCL _should_
complain about the quote even without the OPTIMIZE SAFETY and
DEFMETHOD FOO...) :P

Cheers,

 -- Nikodemus

_______________________________________________
asdf-devel mailing list
[email protected]
http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel

Reply via email to