Estoy intentando resolver una advertencia de reflexión en Clojure que parece ser el resultado de la falta de inferencia de tipo en los valores de devolución de función que son objetos normales de Java.Escriba sugerencia para funciones en Clojure
código de ejemplo trivial que demuestra el problema:
(set! *warn-on-reflection* true)
(defn foo [#^Integer x] (+ 3 x))
(.equals (foo 2) (foo 2))
=> Reflection warning, NO_SOURCE_PATH:10 - call to equals can't be resolved.
true
¿Cuál es la mejor manera de resolver esto? ¿Se puede hacer esto con sugerencias tipo?
¿Qué versión de Clojure estás usando? Probé tu ejemplo en mi Clojure v1.0 y parece funcionar bien ... – Greg
Es una construcción de clojure 1.2. Tenga en cuenta que la advertencia solo se muestra con (set! * Warn-on-reflection * true) que puede ser la diferencia ... editó la pregunta para aclarar – mikera
Sí, eso fue todo. Ya lo veo. – Greg