On Feb 24, 1:32 pm, Michel Salim <michel.syl...@gmail.com> wrote: > On Tue, Feb 24, 2009 at 4:44 AM, Anand Patil > > <anand.prabhakar.pa...@gmail.com> wrote: > > > Thanks Miʃel, > > > On Feb 23, 10:15 pm, Michel Salim <michel.syl...@gmail.com> wrote: > > >> What's the object on which .countDown is called? You need to find > >> where it's first declared and give it a type annotation. > > > It's created here: > > > let [ > > latch (java.util.concurrent.CountDownLatch. n) > > ... > > > Sorry if I'm being dense, but do you mean I should annotate it in the > > arguments list of the function where it's used, like so: > > > (defn unlatching-watcher [#^java.util.concurrent.CountDownLatch latch > > cell cell-updated?] > > "A watcher function that decrements a latch when a cell updates." > > (if cell-updated? > > (if (not (:updating @cell)) > > (.countDown latch)))) > > > or annotate in when it's actually created? If the latter, what's the > > syntax for that? > > I was unclear in my hint, apologies. You need a type hint in the > function that takes a CountDownLatch, otherwise Clojure would not know > what it is until you try to call a method on it (and it has to do > reflection) > > Annotating in the arguments list, as you showed in the example, is > fine. This way, you only annotate once for the entire function (I > didn't know you can do (.method #^classname foo) before, actually, > that was neat)
Thanks for the help! Anand --~--~---------~--~----~------------~-------~--~----~ 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 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 -~----------~----~----~----~------~----~------~--~---