The change caused type-check errors in auth-source where they use
`:type function` constraints on object slots and expect those to
be able to hold symbols.
* lisp/emacs-lisp/cl-preloaded.el (function): Revert last change.
* test/src/data-tests.el (data-tests--cl-type-of): Use `cl-functionp`
rather than `functionp` to test `function`.
(cherry picked from commit
e5d824b632a68430535f6e94d911871eb0f3f772)
(car car) (cdr cdr))
(cl--define-built-in-type function (atom)
"Abstract supertype of function values."
- :predicate cl-functionp)
+ ;; FIXME: Historically, (cl-typep FOO 'function) called `functionp',
+ ;; so while `cl-functionp' would be the more correct predicate, it
+ ;; would breaks existing code :-(
+ ;; :predicate cl-functionp
+ )
(cl--define-built-in-type compiled-function (function)
"Abstract type of functions that have been compiled.")
(cl--define-built-in-type byte-code-function (compiled-function)
native-comp-unit interpreted-function
tree-sitter-compiled-query
tree-sitter-node tree-sitter-parser))))
- (should-not (cl-typep val subtype))))))))
+ (cond
+ ((eq subtype 'function) (cl-functionp val))
+ (t (should-not (cl-typep val subtype))))))))))
;;; data-tests.el ends here