* lisp/emacs-lisp/cl-macs.el: Use define-symbol-prop
(bug#50869)
(cl-define-compiler-macro, cl-defstruct, cl-deftype): Prefer `define-symbol-prop` over `put` so `unload-feature` can undo those definitions.
This commit is contained in:
parent
bf37ea1873
commit
d60e930d34
1 changed files with 4 additions and 4 deletions
|
@ -3105,7 +3105,7 @@ To see the documentation for a defined struct type, use
|
||||||
`(and ,pred-form t)))
|
`(and ,pred-form t)))
|
||||||
forms)
|
forms)
|
||||||
(push `(eval-and-compile
|
(push `(eval-and-compile
|
||||||
(put ',name 'cl-deftype-satisfies ',predicate))
|
(define-symbol-prop ',name 'cl-deftype-satisfies ',predicate))
|
||||||
forms))
|
forms))
|
||||||
(let ((pos 0) (descp descs))
|
(let ((pos 0) (descp descs))
|
||||||
(while descp
|
(while descp
|
||||||
|
@ -3570,7 +3570,7 @@ and then returning foo."
|
||||||
(cl-defun ,fname ,(if (memq '&whole args) (delq '&whole args)
|
(cl-defun ,fname ,(if (memq '&whole args) (delq '&whole args)
|
||||||
(cons '_cl-whole-arg args))
|
(cons '_cl-whole-arg args))
|
||||||
,@body)
|
,@body)
|
||||||
(put ',func 'compiler-macro #',fname))))
|
(define-symbol-prop ',func 'compiler-macro #',fname))))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun cl-compiler-macroexpand (form)
|
(defun cl-compiler-macroexpand (form)
|
||||||
|
@ -3679,8 +3679,8 @@ macro that returns its `&whole' argument."
|
||||||
The type name can then be used in `cl-typecase', `cl-check-type', etc."
|
The type name can then be used in `cl-typecase', `cl-check-type', etc."
|
||||||
(declare (debug cl-defmacro) (doc-string 3) (indent 2))
|
(declare (debug cl-defmacro) (doc-string 3) (indent 2))
|
||||||
`(cl-eval-when (compile load eval)
|
`(cl-eval-when (compile load eval)
|
||||||
(put ',name 'cl-deftype-handler
|
(define-symbol-prop ',name 'cl-deftype-handler
|
||||||
(cl-function (lambda (&cl-defs ('*) ,@arglist) ,@body)))))
|
(cl-function (lambda (&cl-defs ('*) ,@arglist) ,@body)))))
|
||||||
|
|
||||||
(cl-deftype extended-char () '(and character (not base-char)))
|
(cl-deftype extended-char () '(and character (not base-char)))
|
||||||
;; Define fixnum so `cl-typep' recognize it and the type check emitted
|
;; Define fixnum so `cl-typep' recognize it and the type check emitted
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue