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