I have a piece of code that looks like this
(.getOWLEquivalentClassesAxiom
(owl-data-factory)
(set classlist)
(union-annotations classlist))
The method signature is
getOWLEquivalentClassesAxiom(Set,Set)
On runing lein check I get
Reflection warning, tawny/owl.clj:2219:6 - call to method
getOWLEquivalentClassesAxiom on
org.semanticweb.owlapi.model.OWLDataFactory can't be resolved (argument
types: unknown, java.util.Set).
which makes no sense. Surely, the return type of clojure.core/set is
known to be java.util.Set? I have quite a few calls like this in my
code, which is why I don't want to type hint the return of set
individually.
If I add a function like so:
(defn ^java.util.Set hset [coll]
(set coll))
and call like this:
(.getOWLEquivalentClassesAxiom
(owl-data-factory)
(hset classlist)
(union-annotations classlist))
The reflection warning goes away.
I've tried to reproduce this with simpler cases, like so:
(defn one []
(java.util.Collections/unmodifiableSet
(java.util.HashSet.)))
(defn two []
(java.util.Collections/unmodifiableSet
(set [])))
But both of these pass lein check just fine. Which suggests that clojure
knows set returns a java.util.Set object.
Now, given that I can't give a simple test case, I realise that it's
hard for anyone to work out what is happening. But, worse, I don't know
how to debug this at all. So, how I find out what clojure things the
return type of a function is? Or probe any further why this is failing?
Phil
--
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.