1
0
mirror of https://github.com/janet-lang/janet synced 2024-12-26 00:10:27 +00:00
Make the walk function preserve bracket type, which should fix
threading macro behavior when threading into bracketed expressions.
This commit is contained in:
Calvin Rose 2020-09-26 13:28:29 -05:00
parent b91fe8be5a
commit 0a1d902f46
2 changed files with 8 additions and 1 deletions

View File

@ -1141,7 +1141,10 @@
:table (walk-dict f form)
:struct (table/to-struct (walk-dict f form))
:array (walk-ind f form)
:tuple (tuple/slice (walk-ind f form))
:tuple (let [x (walk-ind f form)]
(if (= :parens (tuple/type form))
(tuple/slice x)
(tuple/brackets ;x)))
form))
(undef walk-ind)

View File

@ -61,4 +61,8 @@
(assert-no-error "import macro 1" (macex '(import a :as b :fresh maybe)))
(assert (deep= ~(,import* "a" :as "b" :fresh maybe) (macex '(import a :as b :fresh maybe))) "import macro 2")
# #477 walk preserving bracket type
(assert (= :brackets (tuple/type (postwalk identity '[]))) "walk square brackets 1")
(assert (= :brackets (tuple/type (walk identity '[]))) "walk square brackets 2")
(end-suite)