これは、 Clojureの静的型付けに関する以前の質問のフォローアップです。
コンパイラのJavaソースコードを参照しましたが、の値をチェックする場所がいくつかありますが*warn-on-reflection*
、次のコードをコンパイルすると、実行時エラーのみが発生します。
(defn div-2 [^String s] (/ 2 s))
このコードがコンパイル時の警告を出すべきではない(出さない)状況はありますか?コンパイラに次のコードで警告を出すのはどれほど難しいでしょうか。
(defn get-length [^String s] (.length s))
(defn test-get-length [] (get-length 2.0))
ありがとう。