Correction to use-package--recognize-function

Finishes https://github.com/jwiegley/use-package/issues/525
This commit is contained in:
John Wiegley 2017-11-29 22:03:03 -08:00
parent 5f2b0cbe8f
commit fab33fef3a

View file

@ -1012,7 +1012,7 @@ If RECURSED is non-nil, recurse into sublists."
(setq last-item x))) arg))) (setq last-item x))) arg)))
(t arg))) (t arg)))
(defun use-package--recognize-function (v &optional additional-pred) (defun use-package--recognize-function (v &optional binding additional-pred)
"A predicate that recognizes functional constructions: "A predicate that recognizes functional constructions:
nil nil
sym sym
@ -1026,10 +1026,12 @@ If RECURSED is non-nil, recurse into sublists."
#'(lambda () ...) #'(lambda () ...)
(function (lambda () ...))" (function (lambda () ...))"
(pcase v (pcase v
((pred symbolp) t) ((and x (guard (if binding
(symbolp x)
(use-package--non-nil-symbolp x)))) t)
(`(,(or `quote `function) (`(,(or `quote `function)
,(pred symbolp)) t) ,(pred use-package--non-nil-symbolp)) t)
((pred commandp) t) ((and x (guard (if binding (commandp x) (functionp x)))) t)
(_ (and additional-pred (_ (and additional-pred
(funcall additional-pred v))))) (funcall additional-pred v)))))
@ -1076,7 +1078,7 @@ representing symbols (that may need to be autloaded)."
(pcase k (pcase k
((pred stringp) t) ((pred stringp) t)
((pred vectorp) t))) ((pred vectorp) t)))
#'(lambda (v) (use-package--recognize-function v #'stringp)) #'(lambda (v) (use-package--recognize-function v t #'stringp))
name label arg)))) name label arg))))
(defalias 'use-package-normalize/:bind 'use-package-normalize-binder) (defalias 'use-package-normalize/:bind 'use-package-normalize-binder)