SLOT-VALUE, (SETF SLOT-VALUE), SLOT-BOUNDP, SLOT-MAKUNBOUND not
returning values specified by the standard when SLOT-MISSING/SLOT-UNBOUND are called and return. Found by Paul Dietz. * src/pcl/std-class.lisp (compute-effective-slot-definition): Return slot-unbound's primary value. * src/pcl/slots.lisp (slot-value): Return slot-missing's primary value. (set-slot-value): Always return the new value. (slot-boundp): Return a boolean equivalent of slot-missing's primary value. (slot-makunbound): Always return the instance. (slot-value-using-class): Return slot-unbound's primary value. (slot-unbound-internal): Likewise. * src/pcl/slots-boot.lisp (ensure-accessor): Return slot-missing's primary value for slot-value, a boolean equivalent of its primary value for slot-boundp, and always return the value for setf. (accessor-set-slot-value): Always return the new value. (make-optimized-std-reader-method-function): Return slot-unbound's primary value. (make-optimized-std-slot-value-using-class-method-function) (make-internal-reader-method-function): Likewise. * src/pcl/method-slot-access-optimization.lisp (inline-slot-unbound): Return slot-unbound's primary value.
Showing
- general-info/release-19a.txt 3 additions, 0 deletionsgeneral-info/release-19a.txt
- pcl/method-slot-access-optimization.lisp 2 additions, 2 deletionspcl/method-slot-access-optimization.lisp
- pcl/slots-boot.lisp 20 additions, 17 deletionspcl/slots-boot.lisp
- pcl/slots.lisp 16 additions, 13 deletionspcl/slots.lisp
- pcl/std-class.lisp 2 additions, 2 deletionspcl/std-class.lisp
Loading
Please register or sign in to comment