|
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