This has nothing to do with eval. The following fails too:

(defmacro foo [] (new StringBuffer))
(foo)


On Dec 3, 3:22 am, Stuart Halloway <[EMAIL PROTECTED]> wrote:
> Hi Michiel,
>
> eval is for form data, so I am more surprised that it works for  
> ArrayList than that it fails for StringBuffer.

>
> Stu
>
> > After playing around with macros, I ran into this problem with Clojure
> > (the latest version from github). The following code throws an
> > IllegalArgumentException: "No method for dispatch value: class
> > java.lang.StringBuffer"
>
> > (defmacro wrap [h] (eval h))
> > (wrap (new StringBuffer))
>
> > But this works fine:
>
> > (eval (new StringBuffer))
>
> > Apparently this fails for StringBuffers, but not for Strings or
> > ArrayLists. I'm not sure if this is a bug, or what the underlying
> > rules here are. At the very least the error message is ... unhelpful.
> > I hope that somebody can shine a light on this.
>
> > Cheers,
>
> > Michiel
--~--~---------~--~----~------------~-------~--~----~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to