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 [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/d/optout.