Fix Edebug spec for cl-defun (bug#24255)

* lisp/emacs-lisp/cl-macs.el: Modify the Edebug spec for
`cl-lambda-list' to support destructuring argument lists.
(cl-defun, cl-defmacro): Fix spelling errors in docstrings.
* lisp/textmodes/rst.el: Remove alternate version of Edebug
specs for `cl-lambda-list' and `cl-type-spec'.
This commit is contained in:
Gemini Lasswell 2017-10-16 11:09:29 -07:00
parent db68cefe72
commit fb4200a875
2 changed files with 23 additions and 25 deletions

View file

@ -193,20 +193,34 @@ The name is made by appending a number to PREFIX, default \"T\"."
(&or lambda-doc cl-declarations))
(def-edebug-spec cl-lambda-list
(([&rest arg]
(([&rest cl-lambda-arg]
[&optional ["&optional" cl-&optional-arg &rest cl-&optional-arg]]
[&optional ["&rest" arg]]
[&optional ["&rest" cl-lambda-arg]]
[&optional ["&key" [cl-&key-arg &rest cl-&key-arg]
&optional "&allow-other-keys"]]
[&optional ["&aux" &rest
&or (symbolp &optional def-form) symbolp]]
)))
. [&or arg nil])))
(def-edebug-spec cl-&optional-arg
(&or (arg &optional def-form arg) arg))
(&or (cl-lambda-arg &optional def-form arg) arg))
(def-edebug-spec cl-&key-arg
(&or ([&or (symbolp arg) arg] &optional def-form arg) arg))
(&or ([&or (symbolp cl-lambda-arg) arg] &optional def-form arg) arg))
(def-edebug-spec cl-lambda-arg
(&or arg cl-lambda-list1))
(def-edebug-spec cl-lambda-list1
(([&optional ["&whole" arg]] ;; only allowed at lower levels
[&rest cl-lambda-arg]
[&optional ["&optional" cl-&optional-arg &rest cl-&optional-arg]]
[&optional ["&rest" cl-lambda-arg]]
[&optional ["&key" cl-&key-arg &rest cl-&key-arg
&optional "&allow-other-keys"]]
[&optional ["&aux" &rest
&or (symbolp &optional def-form) symbolp]]
. [&or arg nil])))
(def-edebug-spec cl-type-spec sexp)
@ -336,8 +350,8 @@ The full form of a Common Lisp function argument list is
[&key (([KEYWORD] VAR) [INITFORM [SVAR]])... [&allow-other-keys]]
[&aux (VAR [INITFORM])...])
VAR maybe be replaced recursively with an argument list for
destructing, `&whole' is supported within these sublists. If
VAR may be replaced recursively with an argument list for
destructuring, `&whole' is supported within these sublists. If
SVAR, INITFORM, and KEYWORD are all omitted, then `(VAR)' may be
written simply `VAR'. See the Info node `(cl)Argument Lists' for
more details.
@ -430,8 +444,8 @@ The full form of a Common Lisp macro argument list is
[&aux (VAR [INITFORM])...]
[&environment VAR])
VAR maybe be replaced recursively with an argument list for
destructing, `&whole' is supported within these sublists. If
VAR may be replaced recursively with an argument list for
destructuring, `&whole' is supported within these sublists. If
SVAR, INITFORM, and KEYWORD are all omitted, then `(VAR)' may be
written simply `VAR'. See the Info node `(cl)Argument Lists' for
more details.

View file

@ -109,22 +109,6 @@
(def-edebug-spec push
(&or [form symbolp] [form gv-place]))
;; Correct wrong declaration. This still doesn't support dotted destructuring
;; though.
(def-edebug-spec cl-lambda-list
(([&rest cl-macro-arg]
[&optional ["&optional" cl-&optional-arg &rest cl-&optional-arg]]
[&optional ["&rest" arg]]
[&optional ["&key" [cl-&key-arg &rest cl-&key-arg]
&optional "&allow-other-keys"]]
[&optional ["&aux" &rest
&or (symbolp &optional def-form) symbolp]]
)))
;; Add missing declaration.
(def-edebug-spec cl-type-spec sexp) ;; This is not exactly correct but good
;; enough.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Support for `testcover'