diff --git a/src/boot/boot.janet b/src/boot/boot.janet index a31785bb..636f2b24 100644 --- a/src/boot/boot.janet +++ b/src/boot/boot.janet @@ -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) diff --git a/test/suite0010.janet b/test/suite0010.janet index 62ef3bab..feb44510 100644 --- a/test/suite0010.janet +++ b/test/suite0010.janet @@ -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)