summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/elint.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2012-07-17 08:30:48 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2012-07-17 08:30:48 -0400
commitef501ef01cd3d3168da15cf5426f1be119fc90c8 (patch)
tree8acda749c457612f378f085ea87b0774cfac3128 /lisp/emacs-lisp/elint.el
parentb7ffe0402bda8231943066a1ce34e60b3dfdb6e7 (diff)
downloademacs-ef501ef01cd3d3168da15cf5426f1be119fc90c8.tar.gz
* lisp/emacs-lisp/elint.el (elint-find-args-in-code):
Use help-function-arglist, so as to handle lexical byte-code.
Diffstat (limited to 'lisp/emacs-lisp/elint.el')
-rw-r--r--lisp/emacs-lisp/elint.el12
1 files changed, 4 insertions, 8 deletions
diff --git a/lisp/emacs-lisp/elint.el b/lisp/emacs-lisp/elint.el
index 55915813877..2ff0ace9f4c 100644
--- a/lisp/emacs-lisp/elint.el
+++ b/lisp/emacs-lisp/elint.el
@@ -46,6 +46,8 @@
;;; Code:
+(require 'help-fns)
+
(defgroup elint nil
"Linting for Emacs Lisp."
:prefix "elint-"
@@ -713,14 +715,8 @@ Returns `unknown' if we couldn't find arguments."
(defun elint-find-args-in-code (code)
"Extract the arguments from CODE.
CODE can be a lambda expression, a macro, or byte-compiled code."
- (cond
- ((byte-code-function-p code)
- (aref code 0))
- ((and (listp code) (eq (car code) 'lambda))
- (car (cdr code)))
- ((and (listp code) (eq (car code) 'macro))
- (elint-find-args-in-code (cdr code)))
- (t 'unknown)))
+ (let ((args (help-function-arglist code)))
+ (if (listp args) args 'unknown)))
;;;
;;; Functions to check some special forms