<div dir="ltr">Hi,<div><br></div><div>I've seen a similar situation.  There was a module with the same name as a record. The record had two fields.</div><div><br></div><div>    module: x.erl<br></div><div>    record: -record(x, {name, opts}).</div>

<div><br></div><div>This module happened to be a process which was started as a supervisor child with a "StartFunc" like this:</div><div><br></div><div>    X = #x{name=Name, opts=Opts},</div><div>    ...</div><div>

    StartFunc = {x, start_link, [X]},</div><div>    ...</div><div><br></div><div>The StartFunc was (of course) also mistaken for the record, since they look the same on the tuple level.</div><div><br></div><div>/Klas</div>

<div> </div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Jun 7, 2013 at 11:23 AM, Vincent de Phily <span dir="ltr"><<a href="mailto:vincent.dephily@mobile-devices.fr" target="_blank">vincent.dephily@mobile-devices.fr</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Friday 07 June 2013 12:08:18 Kostis Sagonas wrote:<br>
> There is no perfect `solution' to this .<br>
><br>
> Dialyzer works at a level where records have been expanded into tuples<br>
> and thus records and tuples are indistinguishable between them.<br>
> Furthermore, it makes the assumption that within a module any tuple with<br>
> a record tag and with a size that matches some typed record declaration<br>
> refers to the declared types. So you have two options:<br>
><br>
>   1. Use different tags for records and tuples e.g. foo_rec vs. foo (as<br>
> you write)<br>
><br>
>   2. Do not declare types for records that for some reason or another<br>
> you also want to have similar looking tuples (as you write, declaring<br>
> the "union" of the types does not make much sense).<br>
><br>
>  From the two options, I personally very much prefer the first.<br>
<br>
</div>Thanks for confirming this, pity there's no nice way of handling that problem<br>
but I'll stick with option 1 for now.<br>
<br>
Maybe when frames arrive in erlang it'll fix that issue :)<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Vincent de Phily<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</div></div></blockquote></div><br></div>