Skip to content

Commit 6b18b47

Browse files
committed
fix the bug of .clj-kondo/hooks/ornament when defstyled has Fn part
1 parent 235299f commit 6b18b47

1 file changed

Lines changed: 22 additions & 17 deletions

File tree

.clj-kondo/hooks/ornament.clj

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -22,25 +22,30 @@
2222
(api/map-node? x)
2323
(api/vector-node? x)))
2424
more))
25-
_ (prn :fn-tag fn-tag)
26-
_ (when (or (api/list-node? fn-tag)
27-
(nil? fn-tag))
25+
; _ (prn :fn-tag fn-tag)
26+
_ (when (and fn-tag
27+
(not (api/list-node? fn-tag)))
2828
(api/reg-finding! {:row (:row (meta fn-tag))
2929
:col (:col (meta fn-tag))
30-
:message "fn-tag must be at least a list or nil"
31-
:type :lambdaisland.ornament/invalid-syntax}))
32-
def-class-form (api/list-node
33-
(list (api/token-node 'def)
34-
class-name
35-
(api/token-node 'nil)))]
30+
:message "Function part (if present) must be a list"
31+
:type :lambdaisland.ornament/invalid-syntax}))]
3632
(if (api/list-node? fn-tag)
3733
(let [[binding-vec & body] (:children fn-tag)
38-
new-node (api/list-node
39-
(list*
40-
(api/token-node 'fn)
41-
binding-vec
42-
body))]
43-
(prn :new-node (api/sexpr new-node))
44-
{:node new-node})
34+
fn-node (api/list-node
35+
(list*
36+
(api/token-node 'fn)
37+
binding-vec
38+
body))
39+
new-def-node (api/list-node
40+
(list (api/token-node 'def)
41+
class-name
42+
fn-node))]
43+
(prn :new-def-node (api/sexpr new-def-node))
44+
{:node new-def-node})
4545
;; nil node
46-
{:node def-class-form})))
46+
(let [def-class-form (api/list-node
47+
(list (api/token-node 'def)
48+
class-name
49+
(api/token-node 'nil)))]
50+
(prn :def-class-form (api/sexpr def-class-form))
51+
{:node def-class-form}))))

0 commit comments

Comments
 (0)