check-expr checks an entire expression/all inner forms
This commit is contained in:
parent
58bcdea6e8
commit
f8f1e4ec03
1 changed files with 11 additions and 0 deletions
|
@ -3,6 +3,7 @@
|
|||
replacements for patterns of code and remove general code lint"
|
||||
(:require [clojure.core.logic :as logic]
|
||||
[clojure.java.io :as io]
|
||||
[clojure.walk :as walk]
|
||||
[jonase.kibit.rules :as core-rules])
|
||||
(:import [clojure.lang LineNumberingPushbackReader]))
|
||||
|
||||
|
@ -50,6 +51,16 @@
|
|||
(when (sequential? expr)
|
||||
(some #(unify expr %) rules))))
|
||||
|
||||
(declare expr-seq)
|
||||
;; This walks across all the forms within a seq'd form/expression, checking each inner form
|
||||
;; We have to restore `:expr` because it gets munged in the tree/expr walk
|
||||
(defn check-expr
|
||||
"Given a full expression/form-of-forms/form, a map containing the alternative suggestion info, or `nil`"
|
||||
[expr]
|
||||
(if-let [new-expr (walk/walk #(or (-> % check-form :alt) %) check-form expr)]
|
||||
(assoc new-expr :expr expr)
|
||||
nil))
|
||||
|
||||
;; Building the parsable forms
|
||||
;; ---------------------------
|
||||
;;
|
||||
|
|
Loading…
Reference in a new issue