On 20/06/13 10:59, Colin Fleming wrote:
Because this tests for something different - that the element is an instance of ClSymbol. It's not testing the same thing as the core version. I qualify it (psi/symbol? in the examples above) to distinguish it from the core one.

Basically, I'm trying to use definline to allow me to have a more Clojure-y API without having the performance hit of tons of tiny function calls.

I agree that this is unlikely to be a bug in Clojure and is probably something I'm missing, but I can't figure it out.

right I see...so if ClSymbol is a defrecord/deftype I don't see anything wrong with your code...when you do (in-ns 'plugin.psi) do you get a warning that core/symbol? is being replaced by psi/symbol? ?

what you tried on your repl works fine on mine:

user=> (defrecord FOO [a])
user.FOO

user=> (definline foo? [e]
  #_=>   `(instance? FOO ~e))
#'user/foo?

user=> (foo? 2)
false

user=> (filter foo? [1 2 3])
()

user=> (filter foo? [(FOO. 1) 2 3])
(#user.FOO{:a 1})

Did you try 'lein clean' to get rid of already compiled classes? I'm suspecting you have different versions of the same class lying around because of what you said about compiling and recompiling...

Jim




--
--
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/groups/opt_out.


Reply via email to