On Jul 28, 11:02 am, Meikel Brandmeyer <m...@kotka.de> wrote:
> Hi,
>
> On Jul 28, 3:47 am, Rob <rob.nikan...@gmail.com> wrote:
>
> > (defmacro something [a ...]
> >   (if (not (symbol? a))
> >       (let [loc (get-source-location a)]
> >          (throwf "file: %s line: %s  a should be a symbol" (loc :file)
> > (loc :line)
> >        ...
>
> > Thoughts?
>
> Is this really necessary? Just throwing an exception should look like
> this:
> #<CompilerException java.lang.IllegalArgumentException: foo was not a
> bar (source_file_and_line_number_here.clj:45)>
>
> The file and line information is shown in the CompilerException, no?

It's not necessary for simple macros, but I think it helps for fancier
ones.  The line number in the CompilerException looks like it's the
line number of the macro "call" so imagine a macro like `define-class'
that has 100s of lines of code.

(define-class     ; line 5
    ...
    a-mistake     ; line 300
    ...

>From what I'm seeing, the CompilerException points to line 5.

Rob



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