2024 年 Clojure 状态调查! 中分享您的想法。

欢迎!请查看 关于页面 了解更多有关此功能的信息。

+1
Clojure

所以我有这样一段代码

(defn- nanos->ms [elapsed-time]
  (double (/ elapsed-time 1000000)))

即使有 (set! *warn-on-reflection* true) 也能很好地编译。

但是当我使用 tools.namespace.repl/refresh 时,我得到了反射警告

Reflection warning: file:....metrics.clj:6:3 - call to static method doubleCast on clojure.lang.RT cannot be resolved

我的假设是,我在调用内联版本的 double,而该版本未进行类型提示。

这是否正确?如果是的话,我该如何移除这个反射警告?

(defn double
  "Coerce to double"
  {:inline (fn  [x] `(. clojure.lang.RT (doubleCast ~x)))
   :added "1.0"}
  [^Number x] (clojure.lang.RT/doubleCast x))

2 个答案

0
(defn- nanos->ms [elapsed-time]
  (/ elapsed-time 1000000.0))
尽管这解决了当前问题,但它并没有解释我在观察到的异常 :)
0

你能否设置一个环境,以便我可以重现?

我将试试看我能想到什么。
...