* Raymond Toy <[EMAIL PROTECTED]> : Wrote on Wed, 26 Nov 2008 17:08:56 -0500:
| Didier Verna wrote: |> Section "2.23.2 Slot Type Checking" continues to puzzle me, |> especially the fact that you have to be within *methods* for the |> :type slot option to be taken in consideration when writing something Which section is this? I couldnt grep for this in the spec or mopspec. |> to a slot. For instance, with: |> |> (defclass foo () |> ((a :type fixnum))) |> |> (defvar *object* (make-instance 'foo)) |> (setf (slot-value *object* 'a) 3.5) ;; this works like a charm |> |> |> but: |> |> (defmethod setslot ((foo foo) val) |> (setf (slot-value foo 'a) val)) |> |> (setslot *object* 3.5) ;; triggers a type error |> |> |> Can somebody provide a rationale for this ?? |> |> |> | Most likely because no got around to doing it. Plus the most | interesting/most common case is probably in a method. | | I'll see what I can do, but I know very little about the pcl | implementation. It may also have been a tradeoff, [since it is not being done in the compiler] and you want to have at least one path available to the programmer to set a slot value that avoids overhead of a type check. -- Madhu