Class-name symbols self-evaluate; extends? matches host classes; ISO_INSTANT
A slash-free dotted symbol with a Capitalized final segment (java.util.Map, clojure.lang.Named, java.time.Instant) now self-evaluates to its name string instead of resolving to nil — jolt models a class as its name, so a library can extend a protocol to, or instance?-check, a host class jolt has no shim for. hc-resolve-global classifies these as :class; the analyzer emits a const. extends? now matches when either the query or the registered tag is a dotted suffix of the other, so (extends? P java.util.Collection) finds the impl extend registered under the canonical short tag. Add DateTimeFormatter/ISO_INSTANT (UTC, trailing Z). These unblock loading clojure.data.json, which dispatches JSONWriter on java.util.Map/Collection/CharSequence/Instant and defaults a formatter to ISO_INSTANT.
This commit is contained in:
parent
c26fd175f2
commit
21895cb932
7 changed files with 552 additions and 526 deletions
|
|
@ -320,6 +320,8 @@
|
|||
(list (cons "ofPattern" (lambda (p . _) (mk-formatter p)))
|
||||
(cons "ISO_LOCAL_DATE" (mk-formatter "yyyy-MM-dd"))
|
||||
(cons "ISO_LOCAL_DATE_TIME" (mk-formatter "yyyy-MM-dd'T'HH:mm:ss"))
|
||||
;; ISO_INSTANT always renders in UTC with a trailing Z (format-ms is UTC; X -> "Z").
|
||||
(cons "ISO_INSTANT" (mk-formatter "yyyy-MM-dd'T'HH:mm:ssX"))
|
||||
(cons "ofLocalizedDate" (lambda (fs) (style-fmt 'date fs)))
|
||||
(cons "ofLocalizedTime" (lambda (fs) (style-fmt 'time fs)))
|
||||
(cons "ofLocalizedDateTime" (lambda (fs) (style-fmt 'datetime fs)))))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue