There is some weirdeness going on with the new release. Compare: Clojure 1.7.0 user=> (def foo String) #'user/foo user=> (defn ^{:tag foo} a []) #'user/a
with Clojure 1.8.0-master-SNAPSHOT user=> (def foo String) #'user/foo user=> (defn ^{:tag foo} a []) CompilerException java.lang.IllegalArgumentException: Unable to resolve classname: foo, compiling:(NO_SOURCE_PATH:2:1) It loooks like clojure is now trying to use a value that should be available at runtime (after evaluation) at compile time (using the literal form). I realize this might be necessary, clojure already does something similar with :arglists (that causes some issues too) or even inevitable but I fear this will start affecting more and more tools writers. Perharps this calls for an official clarification/specification of how :tag (and :arglists) is evaluated in the different places it can be used, what values are possible and what should be considered an error/undefined behaviour. Dragan Djuric writes: > Clojure only supports long and double primitives as function hints. You are > using int; it didn't work with pre-1.8.0 clojure. -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.