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 [email protected]
> Note that posts from new members are moderated - please be patient with your
> first post.
> To unsubscribe from this group, send email to
> [email protected]
> 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 [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en