Skip to content

Commit 8ca7e86

Browse files
committed
meta fixes
1 parent de6005f commit 8ca7e86

File tree

1 file changed

+12
-15
lines changed

1 file changed

+12
-15
lines changed

src/compojure/api/meta.clj

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -693,6 +693,12 @@
693693
(defn- route-args? [arg]
694694
(not= arg []))
695695

696+
(defn- resolve-var [&env sym]
697+
(when (symbol? sym)
698+
(let [v (resolve &env sym)]
699+
(when (var? v)
700+
v))))
701+
696702
(def endpoint-vars (into #{}
697703
(mapcat (fn [n]
698704
(map #(symbol (name %) (name n))
@@ -759,14 +765,11 @@
759765
(defn- static-middleware? [&env body]
760766
(and (seq? body)
761767
(boolean
762-
(let [sym (first body)]
763-
(when (symbol? sym)
764-
(when-some [v (resolve &env sym)]
765-
(when (var? v)
766-
(when (middleware-vars (var->sym v))
767-
(let [[_ path route-arg & args] body
768-
[options body] (extract-parameters args true)]
769-
(static-body? &env body))))))))))
768+
(when-some [v (resolve-var &env (first body))]
769+
(when (middleware-vars (var->sym v))
770+
(let [[_ mid & body] body]
771+
(and (static-form? &env mid)
772+
(static-body? &env body))))))))
770773

771774
(def route-middleware-vars (into #{}
772775
(mapcat (fn [n]
@@ -803,12 +806,6 @@
803806
(= sym 'if))
804807
(static-body? &env (next form)))))))))
805808

806-
(defn- resolve-var [&env sym]
807-
(when (symbol? sym)
808-
(let [v (resolve &env sym)]
809-
(when (var? v)
810-
v))))
811-
812809
(defn- static-resolved-form? [&env form]
813810
(boolean
814811
(or (and (seq? form)
@@ -1007,7 +1004,7 @@
10071004
(let [coach (some-> (System/getProperty "compojure.api.meta.static-context-coach")
10081005
edn/read-string)]
10091006
(if-not coach
1010-
(when (ffirst (reset-vals! warned-non-static? true))
1007+
(when (first (reset-vals! warned-non-static? true))
10111008
(println
10121009
(str (format "WARNING: Performance issue detected with compojure-api usage in %s.\n" (ns-name *ns*))
10131010
"To fix this warning, set: -Dcompojure.api.meta.static-context-coach={:default :print}.\n"

0 commit comments

Comments
 (0)