That's weird. I see no reflection warnings when loading this on 1.3 alpha 1. 

Stu

> The following program compiles and runs perfectly fine in both 1.2 and 1.3 
> alpha1.  It has no reflection warnings in 1.2, but it does in 1.3 alpha1.  I 
> have tried several variations, but I haven't yet been able to figure out how 
> to write type declarations that avoid reflection in 1.3 alpha1.  Does anyone 
> know whether this is a bug?
> 
> Or perhaps code like this ought to be structured completely differently in 
> order to avoid reflection, and it was just a fluke that it worked in 1.2?
> 
> Thanks,
> Andy
> 
> (ns nbody
>  (:gen-class))
> 
> (set! *warn-on-reflection* true)
> 
> (definterface IBody
>  (^double x [])
>  (^double y [])
>  (^double z [])
>  (^double dist [other]))
> 
> (deftype Body [^{:unsynchronized-mutable true :tag double} x
>               ^{:unsynchronized-mutable true :tag double} y
>               ^{:unsynchronized-mutable true :tag double} z ]
>  IBody
>  (x [this] x)
>  (y [this] y)
>  (z [this] z)
>  (dist [this other]
>        (let [^Body nbody other
>              dx (- x (.x nbody))   ; first reflection warning here
>              dy (- y (.y nbody))   ; second here
>              dz (- z (.z nbody))   ; third here
>              dsq (+ (* dx dx)
>                     (+ (* dy dy)
>                        (* dz dz)))]
>          (Math/sqrt dsq))))
> 
> (defn -main [& args]
>  (let [b (Body. 0 0 0)]
>    (println "pos:" (.x b) (.y b) (.z b))))
> 
> -- 
> 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 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

Reply via email to