J'essaie de résoudre un avertissement de réflexion dans Clojure qui semble résulter de l'absence d'inférence de type sur les valeurs de retour de fonction qui sont des objets Java normaux.Type indiquant des fonctions dans Clojure
exemple de code Trivial qui démontre la question:
(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
Quelle est la meilleure façon de résoudre ce problème? Cela peut-il être fait avec des conseils de type?
Quelle version de Clojure utilisez-vous? J'ai essayé votre exemple dans ma Clojure v1.0 et ça semble fonctionner ... – Greg
C'est une version clojure 1.2. Notez que l'avertissement ne montre qu'avec (set! * Warn-on-reflection * true) qui peut être la différence .... éditer la question pour clarifier – mikera
Oui, c'était ça. Je le vois maintenant. – Greg