En cuanto a clojure.test
source code, vi a los siguientes:¿Cuál es el uso de ^: dinámico en una definición?
(defonce ^:dynamic
^{:doc "True by default. If set to false, no test functions will
be created by deftest, set-test, or with-test. Use this to omit
tests when compiling or loading production code."
:added "1.1"}
*load-tests* true)
¿Hay alguna ventaja o razón detrás de la prevención de redefinición (es decir, usando defonce
) de un var que está marcado como ^:dynamic
?
¿Podría ser para evitar una advertencia del compilador sobre tener una var no dinámica llamada '* something *'? – thoferon
Entonces la pregunta sería por qué usar orejeras en el nombre, que expresa exactamente el mismo significado de '^: dynamic' en versiones anteriores de Clojure. Comprobaré si las versiones anteriores de 'clojure.test' están usando diferentes estrategias' def' para esa var. – skuro