branch: externals/phpinspect
commit f8689ac9df54060294f21e4eab08e7147afaa10d
Author: Hugo Thunnissen <de...@hugot.nl>
Commit: Hugo Thunnissen <de...@hugot.nl>

    Return parser function in stead of just the symbol
---
 phpinspect.el | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/phpinspect.el b/phpinspect.el
index 7283de2836..5705221fd5 100644
--- a/phpinspect.el
+++ b/phpinspect.el
@@ -360,11 +360,12 @@ If a parser by TREE-TYPE doesn't exist, it is created by 
callng
 `phpinspect-make-parser` with TREE-TYPE as first argument and
 PARSER-PARAMETERS as the rest of the arguments.  The resulting
 parser function is then returned in byte-compiled form."
-  (let ((parser-name (symbol-name tree-type)))
-    (or (intern-soft parser-name phpinspect-parser-obarray)
-         (defalias (intern parser-name phpinspect-parser-obarray)
-           (byte-compile (apply #'phpinspect-make-parser
-                                `(,tree-type ,@parser-parameters)))))))
+  (let* ((parser-name (symbol-name tree-type))
+         (parser-symbol (intern-soft parser-name phpinspect-parser-obarray)))
+    (or (and parser-symbol (symbol-function parser-symbol))
+        (defalias (intern parser-name phpinspect-parser-obarray)
+          (byte-compile (apply #'phpinspect-make-parser
+                               `(,tree-type ,@parser-parameters)))))))
 
 (defun phpinspect-purge-parser-cache ()
   "Empty `phpinspect-parser-obarray`.

Reply via email to