<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Sep 21, 2015 at 1:25 PM, Magnus Henoch <span dir="ltr"><<a href="mailto:magnus@erlang-solutions.com" target="_blank">magnus@erlang-solutions.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">I had a vaguely related idea the other day.  When you trace a function that takes an anonymous function as an argument, it's printed like this:<br>
<br>
8> lists:all(foo:foo(3), [1, 2]).<br>
(<0.33.0>) call lists:all(#Fun<foo.0.99124727>,[1,2])<br>
(<0.33.0>) returned from lists:all/2 -> false<br>
<br>
That tells you that anonymous function number 0 in module foo is passed as an argument.  It would be convenient to have the 0 be the line number where the anonymous function is defined instead, so you can quickly figure out exactly which function is being passed, in case your module creates several different ones.<br>
<br></blockquote><div><br></div><div>That is more of a formatting thing, as io:format does the same thing. I'll try to keep it in mind though. Adding {line,No} tuple to the return of erlang:fun_info should be simple enough and from there io_lib:format can do what it wants. Just hope we don't step on any backwards compatibility toes.</div></div></div></div>