|
29 | 29 | n (:name m)
|
30 | 30 | arglists (:arglists m)
|
31 | 31 | protocol (:protocol m)
|
| 32 | + when-class (-> sym meta :when-class) |
32 | 33 | forward-meta (into (sorted-map) (select-keys m [:doc :tag :deprecated]))
|
33 | 34 | forward-meta (cond-> forward-meta
|
34 | 35 | (nil? (:tag forward-meta)) (dissoc :tag))
|
35 | 36 | _ (assert (not= n impl-local-sym))]
|
36 | 37 | (when (:macro m)
|
37 | 38 | (throw (IllegalArgumentException.
|
38 | 39 | (str "Calling import-fn on a macro: " sym))))
|
39 |
| - (list 'let [impl-local-sym (list 'delay |
40 |
| - (list 'load-java-time) |
41 |
| - (list 'deref (list 'resolve (list 'quote sym))))] |
42 |
| - (list* 'defn n |
43 |
| - (concat |
44 |
| - (some-> (not-empty forward-meta) list) |
45 |
| - (normalize-arities |
46 |
| - (map (fn [argv] |
47 |
| - (let [argv (normalize-argv argv)] |
48 |
| - (list argv |
49 |
| - (if (some #{'&} argv) |
50 |
| - (list* 'apply (list 'deref impl-local-sym) (remove #{'&} argv)) |
51 |
| - (list* (list 'deref impl-local-sym) argv))))) |
52 |
| - arglists))))))) |
| 40 | + (cond->> (list 'let [impl-local-sym (list 'delay |
| 41 | + (list 'load-java-time) |
| 42 | + (list 'deref (list 'resolve (list 'quote sym))))] |
| 43 | + (list* 'defn n |
| 44 | + (concat |
| 45 | + (some-> (not-empty forward-meta) list) |
| 46 | + (normalize-arities |
| 47 | + (map (fn [argv] |
| 48 | + (let [argv (normalize-argv argv)] |
| 49 | + (list argv |
| 50 | + (if (some #{'&} argv) |
| 51 | + (list* 'apply (list 'deref impl-local-sym) (remove #{'&} argv)) |
| 52 | + (list* (list 'deref impl-local-sym) argv))))) |
| 53 | + arglists))))) |
| 54 | + when-class (list 'java-time.util/when-class when-class)))) |
53 | 55 |
|
54 | 56 | (defn import-macro [sym]
|
55 | 57 | (let [vr (find-var sym)
|
|
81 | 83 | rest
|
82 | 84 | (mapcat unravel)
|
83 | 85 | (map
|
84 |
| - #(symbol |
85 |
| - (str (first x) |
86 |
| - (when-let [n (namespace %)] |
87 |
| - (str "." n))) |
88 |
| - (name %)))) |
| 86 | + #(with-meta |
| 87 | + (symbol |
| 88 | + (str (first x) |
| 89 | + (when-let [n (namespace %)] |
| 90 | + (str "." n))) |
| 91 | + (name %)) |
| 92 | + (meta %)))) |
89 | 93 | [x]))
|
90 | 94 | syms (mapcat unravel syms)]
|
91 | 95 | (map (fn [sym]
|
|
159 | 163 |
|
160 | 164 | '[java-time.format format formatter]
|
161 | 165 |
|
162 |
| - '[java-time.pre-java8 java-date sql-date sql-timestamp instant->sql-timestamp sql-time] |
| 166 | + '[java-time.pre-java8 java-date sql-date sql-timestamp instant->sql-timestamp |
| 167 | + ^{:when-class "java.sql.Time"} sql-time] |
163 | 168 |
|
164 | 169 | '[java-time.interval
|
165 | 170 | move-start-to move-end-to move-start-by move-end-by
|
|
0 commit comments