Skip to content
Snippets Groups Projects
Commit 4faa083c authored by gerd's avatar gerd
Browse files

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.
parent e4915983
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment