|
20 | 20 | "lexically bound ring-request for handlers." |
21 | 21 | '+compojure-api-request+) |
22 | 22 |
|
| 23 | +(defn- var->sym [^clojure.lang.Var v] |
| 24 | + (symbol (-> v .ns ns-name name) (-> v .sym name))) |
| 25 | + |
23 | 26 | ;; |
24 | 27 | ;; Schema |
25 | 28 | ;; |
|
716 | 719 | (when (symbol? sym) |
717 | 720 | (when-some [v (resolve &env sym)] |
718 | 721 | (when (var? v) |
719 | | - (let [sym (symbol v)] |
| 722 | + (let [sym (var->sym v)] |
720 | 723 | (or (endpoint-vars sym) |
721 | 724 | (and (routes-vars sym) |
722 | 725 | (static-body? &env (next form)))))))))))) |
|
731 | 734 | (when (symbol? sym) |
732 | 735 | (when-some [v (resolve &env sym)] |
733 | 736 | (when (var? v) |
734 | | - (let [sym (symbol v)] |
| 737 | + (let [sym (var->sym v)] |
735 | 738 | (when (and (resource-vars sym) |
736 | 739 | (= 2 (count form))) |
737 | 740 | (let [[_ data] form] |
|
751 | 754 | (when (symbol? sym) |
752 | 755 | (when-some [v (resolve &env sym)] |
753 | 756 | (when (var? v) |
754 | | - (context-vars (symbol v))))))))) |
| 757 | + (context-vars (var->sym v))))))))) |
755 | 758 |
|
756 | 759 | (def middleware-vars (into #{} |
757 | 760 | (mapcat (fn [n] |
|
767 | 770 | (when (symbol? sym) |
768 | 771 | (when-some [v (resolve &env sym)] |
769 | 772 | (when (var? v) |
770 | | - (when (middleware-vars (symbol v)) |
| 773 | + (when (middleware-vars (var->sym v)) |
771 | 774 | (let [[_ path route-arg & args] body |
772 | 775 | [options body] (extract-parameters args true)] |
773 | 776 | (static-body? &env body)))))))))) |
|
788 | 791 | (when (symbol? sym) |
789 | 792 | (when-some [v (resolve &env sym)] |
790 | 793 | (when (var? v) |
791 | | - (when (route-middleware-vars (symbol v)) |
| 794 | + (when (route-middleware-vars (var->sym v)) |
792 | 795 | (let [[_ mids & body] body] |
793 | 796 | (and (some? mids) |
794 | 797 | (static-body? &env body))))))))))) |
|
850 | 853 | (and (seq? form) |
851 | 854 | ('#{clojure.spec.alpha/keys} |
852 | 855 | (some-> (resolve-var &env (first form)) |
853 | | - symbol))) |
| 856 | + var->sym))) |
854 | 857 | (and (seq? form) |
855 | 858 | (symbol? (first form)) |
856 | 859 | (when-some [v (resolve-var &env (first form))] |
857 | 860 | (when (or (#{"spec-tools.data-spec" |
858 | 861 | "spec-tools.core" |
859 | 862 | "schema.core" |
860 | 863 | "ring.util.http-response"} |
861 | | - (namespace (symbol v))) |
| 864 | + (namespace (var->sym v))) |
862 | 865 | ('#{compojure.api.sweet/describe |
863 | 866 | ring.swagger.json-schema/describe |
864 | 867 | clojure.core/constantly} |
865 | | - (symbol v))) |
| 868 | + (var->sym v))) |
866 | 869 | (when-not (some #{:dynamic :macro} (meta v)) |
867 | 870 | (every? #(static-form? &env %) (next form)))))))) |
868 | 871 |
|
|
894 | 897 | (when-some [op (or (when (= 'let* (first form)) |
895 | 898 | 'let*) |
896 | 899 | (when-some [v (resolve-var &env (first form))] |
897 | | - (let [sym (symbol v)] |
| 900 | + (let [sym (var->sym v)] |
898 | 901 | (when (contains? |
899 | 902 | '#{clojure.core/let clojure.core/for |
900 | 903 | compojure.api.sweet/let-routes compojure.api.core/let-routes} |
|
0 commit comments