有沒有辦法在Clojure中將某個符號標記爲過時?Clojure中的過時符號
我可以使用Lein這樣的工具。
https://github.com/technomancy/leiningen/blob/1.x/src/leiningen/core.clj#L13
但是它當一個函數被調用僅發出警告的。我真的很喜歡編譯器在編譯代碼時選擇它,而不是在調用代碼時。
當然,我可能只是不定義符號,其編譯器會再挑 ,但是這剝奪了我的能力,以提供任何信息,比如爲什麼,或者當 符號已被棄用。
所有這一切對於其中條款的折舊和報廢是要以合理的速度發生一個DSL。
不是將函數重新定義爲另一個函數,而是將其重新定義爲在編譯時展開時發出警告的宏。 – Barmar
@Barmar這使得它不可能用作參數或文字。可怕的想法。相反,只需在展開宏的擴展時強制執行警告。 (這當然意味着警告只發生在編譯庫時,這可能不是你想要的)。 – Cubic
@cubic不,這也是錯誤的。關鍵是要警告客戶端應用程序何時_use_過時的功能,而不是庫編譯時。我想要得到真正想要的東西,將會在Clojure編譯器中得到特別的支持。 – Barmar