For those keeping score at home, the CLJ-2436 patch says,
(defn- typeref->class
- [typeref classloader]
+ ^Class [typeref classloader]
(if (class? typeref)
typeref
- (clojure.lang.RT/classForName (typename typeref) false classloader)))
+ (clojure.lang.RT/classForName (typename typeref) false classloader)))
I was wondering why the compiler required the type hint. It reminded me of
something I had seen in the news recently, regarding ClojureScript. The
ClojureScript changes.md lists "CLJS-1997: Outward function type hint
propagation". That issue, in turn, has an informative comment (Thanks,
Mike Fikes!) about *Clojure*:
Bronsa helpfully pointed out in Slack that outward type hint propagation is
avoided in Clojure because it breaks things like:
(defn foo [] 1)
(defn bar [] (String/valueOf (foo)))
(defn foo [] "foo")
(bar)
--
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.