Skip to content

Commit d9c98ba

Browse files
jesperaYannick Scherer
authored andcommitted
[#53] implement 'NodeCoerceable' for 'nil'.
1 parent f3904d9 commit d9c98ba

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

src/rewrite_clj/node/coerce.clj

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,11 @@
4949
(token-node v)
5050
v)))
5151

52+
(extend-protocol NodeCoerceable
53+
nil
54+
(coerce [v]
55+
(token-node nil)))
56+
5257
;; ## Seqs
5358

5459
(defn- seq-node

test/rewrite_clj/node/coerce_test.clj

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
(:require [midje.sweet :refer :all]
33
[rewrite-clj.node.protocols
44
:as node :refer [coerce]]
5-
[rewrite-clj.node.coerce :refer :all]))
5+
[rewrite-clj.node.coerce :refer :all]
6+
[rewrite-clj.parser :as p]))
67

78
(tabular
89
(fact "about sexpr -> node -> sexpr roundtrip."
@@ -52,6 +53,12 @@
5253
n => #(satisfies? node/Node %)
5354
(node/sexpr n) => '(var clojure.core/identity)))
5455

56+
(fact "about nil."
57+
(let [n (coerce nil)]
58+
n => #(satisfies? node/Node %)
59+
(node/sexpr n) => nil
60+
(p/parse-string "nil") => n))
61+
5562
(defrecord Foo-Bar [a])
5663

5764
(fact "about records."

0 commit comments

Comments
 (0)