emacs-elpa-diffs
[Top][All Lists]
Advanced

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

[elpa] master b0f8f03 02/38: make sure to visit import clause children i


From: Dmitry Gutov
Subject: [elpa] master b0f8f03 02/38: make sure to visit import clause children in order
Date: Wed, 28 Feb 2018 20:12:07 -0500 (EST)

branch: master
commit b0f8f031baf2f6767d8ac4b6080571ed118cc082
Author: felipe <address@hidden>
Commit: felipe <address@hidden>

    make sure to visit import clause children in order
    
    Fixes #439
---
 js2-mode.el      |  6 +++---
 tests/consume.el | 17 +++++++++++++++++
 2 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/js2-mode.el b/js2-mode.el
index 2f2df7b..4a9a068 100644
--- a/js2-mode.el
+++ b/js2-mode.el
@@ -2843,13 +2843,13 @@ local context."
   (let ((ns-import (js2-import-clause-node-namespace-import n))
         (named-imports (js2-import-clause-node-named-imports n))
         (default (js2-import-clause-node-default-binding n)))
+    (when default
+      (js2-visit-ast default v))
     (when ns-import
       (js2-visit-ast ns-import v))
     (when named-imports
       (dolist (import named-imports)
-        (js2-visit-ast import v)))
-    (when default
-      (js2-visit-ast default v))))
+        (js2-visit-ast import v)))))
 
 (defun js2-print-import-clause (n)
   (let ((ns-import (js2-import-clause-node-namespace-import n))
diff --git a/tests/consume.el b/tests/consume.el
index 935cdeb..df1faea 100644
--- a/tests/consume.el
+++ b/tests/consume.el
@@ -57,3 +57,20 @@
       (setq comments (js2-comments-between 8 9 comments))
       (should (= (length comments) 1))
       )))
+
+;;; Visitors
+
+(ert-deftest js2-visit-import-clause-in-order ()
+  (with-temp-buffer
+    (insert "import defaultImport, { a, b, c} from 'xyz';")
+    (js2-mode--and-parse)
+    (let (visit-log)
+     (js2-visit-ast js2-mode-ast (lambda (node end-p)
+                                   (message (js2-node-short-name node))
+                                   (when (and (not end-p) (js2-name-node-p 
node))
+                                     (let* ((start (js2-node-abs-pos node))
+                                            (end (+ start (js2-node-len 
node))))
+                                       (push (buffer-substring-no-properties 
start end) visit-log)))
+                                   t))
+     (setq visit-log (nreverse visit-log))
+     (should (equal visit-log (list "defaultImport" "a" "b" "c"))))))



reply via email to

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