diff options
Diffstat (limited to 'lisp/emacs-lisp/cl-generic.el')
-rw-r--r-- | lisp/emacs-lisp/cl-generic.el | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lisp/emacs-lisp/cl-generic.el b/lisp/emacs-lisp/cl-generic.el index 8dee9a38ab0..f214faff237 100644 --- a/lisp/emacs-lisp/cl-generic.el +++ b/lisp/emacs-lisp/cl-generic.el @@ -228,7 +228,8 @@ This macro can only be used within the lexical scope of a cl-generic method." "Make the lambda expression for a method with ARGS and BODY." (let ((plain-args ()) (specializers nil) - (doc-string (if (stringp (car-safe body)) (pop body))) + (doc-string (if (and (stringp (car-safe body)) (cdr body)) + (pop body))) (mandatory t)) (dolist (arg args) (push (pcase arg @@ -252,7 +253,7 @@ This macro can only be used within the lexical scope of a cl-generic method." ;; destructuring args, `declare' and whatnot). (pcase (macroexpand fun macroenv) (`#'(lambda ,args . ,body) - (let* ((doc-string (and doc-string (stringp (car body)) + (let* ((doc-string (and doc-string (stringp (car body)) (cdr body) (pop body))) (cnm (make-symbol "cl--cnm")) (nmp (make-symbol "cl--nmp")) |