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

欢迎!有关此功能的工作方式,请参阅关于页面。

0
ClojureScript

如果一个函数有两个arity,其中一个函数调用另一个,那么如果该函数被标记为^:deprecated,则该函数存在时,总会发出关于弃用警告的编译警告。例如:

`
(defn ^:deprecated test-deprecated
([]

(test-deprecated nil))

([a]

nil))

`

将产生这些日志

WARNING:my.test/test-deprecated已弃用。在src/my/test/error.cljs的第3行

我认为这里只应该警告有关弃用函数的外部引用。否则,将无法弃用多arity函数并仍然进行干净的编译。

2 答案

0
_ 评论者:mfikes_

一种解决方案:可以通过将调用形式标记为{{^:deprecation-nowarn}}来抑制弃用警告。

应用于此问题的示例


(defn ^:deprecated test-deprecated
  ([]
    ^:deprecation-nowarn (test-deprecated nil))
  ([a]
    nil))
0
...