]> git.eshelyaron.com Git - emacs.git/commitdiff
Correction to use-package--recognize-function
authorJohn Wiegley <johnw@newartisans.com>
Thu, 30 Nov 2017 06:03:03 +0000 (22:03 -0800)
committerJohn Wiegley <johnw@newartisans.com>
Thu, 30 Nov 2017 06:03:03 +0000 (22:03 -0800)
Finishes https://github.com/jwiegley/use-package/issues/525

lisp/use-package/use-package.el

index bc8dd70609ff8d7c84f4159ff0ee0d68d5632b92..5eb2b23936d5d533edaf188189dbc4ea1133fc46 100644 (file)
@@ -1012,7 +1012,7 @@ If RECURSED is non-nil, recurse into sublists."
              (setq last-item x))) 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:
   nil
   sym
@@ -1026,10 +1026,12 @@ If RECURSED is non-nil, recurse into sublists."
   #'(lambda () ...)
   (function (lambda () ...))"
   (pcase v
-    ((pred symbolp) t)
+    ((and x (guard (if binding
+                       (symbolp x)
+                     (use-package--non-nil-symbolp x)))) t)
     (`(,(or `quote `function)
-       ,(pred symbolp)) t)
-    ((pred commandp) t)
+       ,(pred use-package--non-nil-symbolp)) t)
+    ((and x (guard (if binding (commandp x) (functionp x)))) t)
     (_ (and additional-pred
             (funcall additional-pred v)))))
 
@@ -1076,7 +1078,7 @@ representing symbols (that may need to be autloaded)."
            (pcase k
              ((pred stringp) t)
              ((pred vectorp) t)))
-       #'(lambda (v) (use-package--recognize-function v #'stringp))
+       #'(lambda (v) (use-package--recognize-function v #'stringp))
        name label arg))))
 
 (defalias 'use-package-normalize/:bind 'use-package-normalize-binder)