Skip to content
Snippets Groups Projects
Forked from cmucl / cmucl
Source project has a limited visibility.
user avatar
gerd authored
	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.
4faa083c
History
Name Last commit Last update