• Stefan Monnier's avatar
    (cl-type-of): New function to return more precise types (bug#69739) · 706403f2
    Stefan Monnier authored
    * src/data.c (Fcl_type_of): New function, extracted from `Ftype_of`.
    Make it return more precise types for symbols, integers, and subrs.
    (Ftype_of): Use it.
    (syms_of_data): Define the corresponding new symbols and defsubr
    the new function.
    
    * doc/lispref/objects.texi (Type Predicates): Document it.
    
    * src/comp.c (emit_limple_insn): Use `Fcl_type_of`.
    
    * lisp/emacs-lisp/cl-preloaded.el (subr): Demote it to `atom`.
    (subr-native-elisp, subr-primitive): Add `compiled-function` as
    parent instead.
    (special-form): New type.
    
    * lisp/obsolete/eieio-core.el (cl--generic-struct-tag):
    * lisp/emacs-lisp/cl-generic.el (cl--generic-typeof-generalizer):
    Use `cl-type-of`.
    cl--generic--unreachable-types): Update accordingly.
    
    test/src/data-tests.el (data-tests--cl-type-of): New test.
    706403f2