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.

Reply via email to