type-hinting functions with variable (but known) return types

2013-12-11 Thread Phillip Lord

Sorry, full of questions about type hinting at the moment.

I've found myself writing a lot of expressions like this:

^[Lorg.semanticweb.owlapi.model.OWLClassExpression;
(into-array OWLClassExpression
[(ensure-class o name)
 (ensure-class o disjoint)])

Now the strange thing here is that I have to type hint an expression
which clojure clearly knows the return type of (although only for the
expression and not for the function).

This is particularly painful because I'm only constructing the array to
call a variadic method in Java, and the type hint is particularly
verbose.

Is there an easier way?

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


Re: type-hinting functions with variable (but known) return types

2013-12-11 Thread Cedric Greevey
The only thing I can think of off the top of my head is to write a
hinted-array macro that turns (hinted-array Class expr) into ^Class
(into-array Class expr). Emitting type hints or other form metadata in
macros is do-able, but sometimes a bit tricky. Something like this might
work (untested):

(defmacro hinted-array [class expr]
  (with-meta
`(into-array ~class ~expr)
{:tag class}))



On Wed, Dec 11, 2013 at 12:04 PM, Phillip Lord phillip.l...@newcastle.ac.uk
 wrote:


 Sorry, full of questions about type hinting at the moment.

 I've found myself writing a lot of expressions like this:

 ^[Lorg.semanticweb.owlapi.model.OWLClassExpression;
 (into-array OWLClassExpression
 [(ensure-class o name)
  (ensure-class o disjoint)])

 Now the strange thing here is that I have to type hint an expression
 which clojure clearly knows the return type of (although only for the
 expression and not for the function).

 This is particularly painful because I'm only constructing the array to
 call a variadic method in Java, and the type hint is particularly
 verbose.

 Is there an easier way?

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


-- 
-- 
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.