From cbc9e592e8602e594cf2dbf6393eec1ff32ca5db Mon Sep 17 00:00:00 2001 From: Christophe Grand Date: Fri, 30 Jun 2023 11:58:46 +0200 Subject: [PATCH] inst literals can now appear in source code --- clj/src/cljd/compiler.cljc | 3 +++ clj/test/cljd/test_clojure/core_test_cljd.cljd | 3 +++ 2 files changed, 6 insertions(+) diff --git a/clj/src/cljd/compiler.cljc b/clj/src/cljd/compiler.cljc index 8744d429..83a9aa17 100644 --- a/clj/src/cljd/compiler.cljc +++ b/clj/src/cljd/compiler.cljc @@ -3176,6 +3176,9 @@ (symbol? x) (emit-symbol x env) #?@(:clj [(char? x) (str x)]) (or (number? x) (boolean? x) (string? x)) x + (instance? java.util.Date x) + (let [[_ s] (re-matches #"#inst *\"(.*)\"" (pr-str x))] + (emit (list 'dart:core/DateTime.parse s) env)) (instance? java.util.regex.Pattern x) (emit (list 'new 'dart:core/RegExp #_(list '. 'dart:core/RegExp 'escape (.pattern ^java.util.regex.Pattern x)) diff --git a/clj/test/cljd/test_clojure/core_test_cljd.cljd b/clj/test/cljd/test_clojure/core_test_cljd.cljd index 36e5489f..c711e945 100644 --- a/clj/test/cljd/test_clojure/core_test_cljd.cljd +++ b/clj/test/cljd/test_clojure/core_test_cljd.cljd @@ -812,3 +812,6 @@ "hello" .bar "world"))) (is (= #dart ("hey" .bar "foo") (.method2 obj #dart ("hey" .bar "foo")))))) + +(deftest inst-literals-in-code + (is (= 1978 (.-year #inst "1978-10-11"))))