Skip to content

Predicates and Utilities ​

Now that we know how to create classes, access slots, and define methods, it might be useful to verify that everything is doing ok. To help with this a plethora of predicates have been created.

Function: find-class symbol &optional errorp ​

Return the class that symbol represents. If there is no class, nil is returned if errorp is nil. If errorp is non-nil, wrong-type-argument is signaled.

Function: class-p class ​

Return t if class is a valid class object. class is a symbol.

Function: slot-exists-p object-or-class slot ​

Non-nil if object-or-class has slot.

Function: slot-boundp object slot ​

Non-nil if OBJECT’s slot is bound. Setting a slot’s value makes it bound. Calling slot-makeunbound will make a slot unbound. object can be an instance or a class.

Function: eieio-class-name class ​

Return the class name as a symbol.

Function: class-option class option ​

Return the value in CLASS of a given OPTION. For example:

emacs-lisp
(class-option eieio-default-superclass :documentation)

Will fetch the documentation string for eieio-default-superclass.

Function: eieio-object-name obj ​

Return a string of the form ‘#<object-class myobjname>’ for obj. This should look like Lisp symbols from other parts of Emacs such as buffers and processes, and is shorter and cleaner than printing the object’s record. It is more useful to use object-print to get an object’s print form, as this allows the object to add extra display information into the symbol.

Function: eieio-object-class obj ​

Returns the class symbol from obj.

Function: eieio-object-class-name obj ​

Returns the symbol of obj’s class.

Function: eieio-class-parents class ​

Returns the direct parents class of class. Returns nil if it is a superclass.

Function: eieio-class-parents-fast class ​

Just like eieio-class-parents except it is a macro and no type checking is performed.

Function: eieio-class-parent class ​

Deprecated function which returns the first parent of class.

Function: eieio-class-children class ​

Return the list of classes inheriting from class.

Function: eieio-class-children-fast class ​

Just like eieio-class-children, but with no checks.

Function: same-class-p obj class ​

Returns t if obj’s class is the same as class.

Function: object-of-class-p obj class ​

Returns t if obj inherits anything from class. This is different from same-class-p because it checks for inheritance.

Function: child-of-class-p child class ​

Returns t if child is a subclass of class.

Function: generic-p method-symbol ​

Returns t if method-symbol is a generic function, as opposed to a regular Emacs Lisp function.