Stefan Monnier [2022-06-06 00:04 -0400] wrote: > branch: master > commit 5ee4209f307fdf8cde9775539c9596d29edccd6d > Author: Stefan Monnier > Commit: Stefan Monnier > > cl-typep: Emit warning when using a type not known to be a type > > `cl-typep` has used a heuristic that if there's a `-p` function, > then can be used as a type. This made sense in the past where > most types were not officially declared to be (cl-)types, but nowadays > this just encourages abuses such as using `cl-typecase` with > "types" like `fbound`. It's also a problem for EIEIO objects, where > for historical reasons `-p` tests if the object is of type > exactly `` whereas (cl-typep OBJ ) should instead test > if OBJ is a *subtype* of ``. > > So we change `cl-typep` to emit a warning whenever this "-p" heuristic > is used, to discourage abuses, encourage the use of explicit > `cl-deftype` declarations, and try and detect some misuses of > `-p` for EIEIO objects. [...] I think this change gave rise to the following 'error: success' message: 0. emacs -Q -l cl-lib 1. (cl-typep (make-process :name "" :command '("true")) 'process) 2. C-j -| Warning: Unknown type: process => t In practice, I see this when using Magit with Forge[0]; see the attached backtrace which I obtained by adding a call to backtrace before macroexp-warn-and-return in cl-typep. Is the following a sufficient fix?