emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 99db66a: * lisp/emacs-lisp/smie.el (smie-prec2->gra


From: Stefan Monnier
Subject: [Emacs-diffs] master 99db66a: * lisp/emacs-lisp/smie.el (smie-prec2->grammar): Fix corner case problem.
Date: Thu, 19 Feb 2015 01:31:43 +0000

branch: master
commit 99db66a01fd998942c4e75733863903247345d90
Author: Stefan Monnier <address@hidden>
Commit: Stefan Monnier <address@hidden>

    * lisp/emacs-lisp/smie.el (smie-prec2->grammar): Fix corner case problem.
---
 lisp/ChangeLog          |    4 ++++
 lisp/emacs-lisp/smie.el |    7 +++++--
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index b71b55d..933e5bb 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,7 @@
+2015-02-19  Stefan Monnier  <address@hidden>
+
+       * emacs-lisp/smie.el (smie-prec2->grammar): Fix corner case problem.
+
 2015-02-18  Kelly Dean  <address@hidden>
 
        * register.el (jump-to-register):
diff --git a/lisp/emacs-lisp/smie.el b/lisp/emacs-lisp/smie.el
index 5b9dc64..48bded4 100644
--- a/lisp/emacs-lisp/smie.el
+++ b/lisp/emacs-lisp/smie.el
@@ -612,8 +612,11 @@ PREC2 is a table as returned by `smie-precs->prec2' or
              (cons (pcase (cdr x)
                      (`closer (cddr (assoc token table)))
                      (`opener (cdr (assoc token table))))))
-        (cl-assert (numberp (car cons)))
-        (setf (car cons) (list (car cons)))))
+        ;; `cons' can be nil for openers/closers which only contain
+        ;; "atomic" elements.
+        (when cons
+          (cl-assert (numberp (car cons)))
+          (setf (car cons) (list (car cons))))))
     (let ((ca (gethash :smie-closer-alist prec2)))
       (when ca (push (cons :smie-closer-alist ca) table)))
     ;; (smie-check-grammar table prec2 'step3)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]