That does, in fact, fix the compile issue. Thanks! The cast error, however, persists. It's something to do with reloading the namespace with the defrecord. Once it happens, it takes a "lein clean" to clear. After that it works w/o error until the namespace is reloaded. It's something to do with referencing the defrecord from another namespace, or aot compiling. So far I haven't found a solution. It appears that an aot compiled file can't reference a function with a type hint for a defrecord if the namespace with that defrecord is then dynamically reloaded. Or something. It all looks exceedingly complex at this point.
On Wednesday, July 16, 2014 8:36:35 PM UTC-7, Andy Fingerhut wrote: > > Try fully qualifying the class name in the return type hint. > > Might be the same symptom as in this ticket: > http://dev.clojure.org/jira/browse/CLJ-1232 > > Andy > > > On Wed, Jul 16, 2014 at 7:18 PM, Brian Craft <craft...@gmail.com > <javascript:>> wrote: > >> Apparently this is due to a class loader problem. >> >> I moved it into a different file to try to avoid the problem. However I'm >> now finding that nothing referencing foo will compile, throwing this error: >> >> CompilerException java.lang.IllegalArgumentException: Unable to resolve >> classname: PStatement >> >> No idea what to do with this. Is it not possible to type hint methods >> returning records? >> >> On Wednesday, July 16, 2014 4:21:22 PM UTC-7, Brian Craft wrote: >>> >>> Trying to eliminate a reflection warning, I put a type hint on a >>> function, like >>> >>> (defn foo ^PStatement [] ...) >>> >>> which compiles without the reflection warnings, but at run time I get >>> >>> ClassCastException java.lang.ClassCastException: cavm.h2.PStatement >>> cannot be cast to cavm.h2.PStatement >>> >>> What does this mean? PStatement is a defrecord type. >>> >> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to clo...@googlegroups.com >> <javascript:> >> Note that posts from new members are moderated - please be patient with >> your first post. >> To unsubscribe from this group, send email to >> clojure+u...@googlegroups.com <javascript:> >> 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+u...@googlegroups.com <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > -- 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.