What does 'java.lang.ClassCastException: clojure.lang.Var$Unbound cannot be
cast to clojure.lang.IDeref' mean. I'm getting this a lot and I want to
understand it better, make it easier for me to avoid this. Most of the time
I just end up adjusting my def/defn's around until it works. This is hardly
optimal.
(this is all on clojure 1.3.0)
An example...
(ns app-admin.models.current-user
(:require [noir.session :as session]
[app-admin.models.users :as users]))
(def get-id
(session/get :uid))
(defn set-user! [user]
(session/put! :uid {:_id user}))
Give me an exception for get-id
ClassCastException clojure.lang.Var$Unbound cannot be cast to
clojure.lang.IDeref clojure.core/deref (core.clj:2078)
So set-user! binds correctly, but get-id doesn't seem to...
=> (get-id)
llegalStateException Attempting to call unbound fn:
#'app-admin.models.current-user/get-id clojure.lang.Var$Unbound.throwArity
(Var.java:43)
Then I check it...
=> (meta #'get-id)
{:ns #<Namespace app-admin.models.current-user>, :name get-id}
So it's there, the fn is bound; I'm not exactly sure what's going on and
nor what I'm missing about how this works to help me avoid problems like
this in future. Just guessing and tweaking has gotten me so far, but that's
not sustainable.
Thanks!
-Travis
--
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