diff --git a/src/pcl/std-class.lisp b/src/pcl/std-class.lisp index 1d4049dcd0dc12be659f4a583da25d3d815d7e68..3f247f2957fa08dc9d310eb218a9fcbe94f82c7b 100644 --- a/src/pcl/std-class.lisp +++ b/src/pcl/std-class.lisp @@ -435,7 +435,12 @@ slot-name) else do (loop for (option value . more) on slot by #'cddr - if (and (member option '(:allocation :type :initform + if (and (eq option :allocation) + (not (member value '(:class :instance)))) do + (simple-program-error + "~@<Slot ~S: :allocation value must be :class or :instance, not ~S~@:>" + slot-name value) + else if (and (member option '(:type :initform :documentation)) (not (eq unsupplied (getf more option unsupplied)))) do