Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
64cea555
Commit
64cea555
authored
Nov 22, 2007
by
Glenn Morris
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(check-declare-verify): Fix previous change. Warn if could not find
an arglist to check.
parent
d5cf82de
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
29 additions
and
19 deletions
+29
-19
lisp/emacs-lisp/check-declare.el
lisp/emacs-lisp/check-declare.el
+29
-19
No files found.
lisp/emacs-lisp/check-declare.el
View file @
64cea555
...
...
@@ -108,17 +108,22 @@ ine-derived-mode\\|ine-minor-mode\\|alias[ \t]+'\\)\\)\
;; (min . max) for a fixed number of arguments, or
;; arglists with optional elements.
;; (min) for arglists with &rest.
;; sig = 'err means we could not find an arglist.
sig (cond (cflag
(re-search-forward "
,
" nil t 3)
(or
(when (re-search-forward "
,
" nil t 3)
(skip-chars-forward "
\t\n
")
;; Assuming minargs and maxargs on same line.
(when (looking-at "
\\
(
[0-9]+\\
)
[
\t]*,[
\t]*
\
\\
(
[0-9]+\\|MANY\\|UNEVALLED\\
)
")
(setq minargs (string-to-number (match-string 1))
(setq minargs (string-to-number
(match-string 1))
maxargs (match-string 2))
(cons minargs (unless (string-match "
[^0-9]
"
maxargs)
(string-to-number maxargs)))))
(string-to-number
maxargs)))))
'err))
((string-equal (match-string 1)
"
define-derived-mode
")
'(0 . 0))
...
...
@@ -129,24 +134,29 @@ ine-derived-mode\\|ine-minor-mode\\|alias[ \t]+'\\)\\)\
((string-equal (match-string 1)
"
defalias
")
t)
(t
(if (looking-at "
\\
((
\\
|
nil\\
)
")
((looking-at "
\\
((
\\
|
nil\\
)
")
(byte-compile-arglist-signature
(read (current-buffer))))))
(read (current-buffer))))
(t
'err))
;; alist of functions and arglist signatures.
siglist (cons (cons fn sig) siglist)))))
(dolist (e fnlist)
(setq arglist (nth 2 e)
type
(if re ; re non-nil means found a file
(if (setq sig (assoc (cadr e) siglist))
(if (setq sig (assoc (cadr e) siglist))
; found function
;; Recall we use t to mean no arglist specified,
;; to distinguish from an empty arglist.
(unless (or (eq arglist t)
(eq sig t))
(unless (equal (byte-compile-arglist-signature arglist)
(cdr sig))
"
arglist
mismatch
"))
(unless (eq arglist t)
(setq sig (cdr-safe sig))
(cond ((eq sig t)) ; defalias, can't check
((eq sig 'err)
"
arglist
not
found
") ; internal error
((not (equal (byte-compile-arglist-signature
arglist)
sig))
"
arglist
mismatch
")))
"
function
not
found
")
"
file
not
found
"))
(when type
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment