<div dir="ltr"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">ср, 19 июн. 2019 г. в 15:34, Marco van de Voort <<a href="mailto:fpc@pascalprogramming.org">fpc@pascalprogramming.org</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
If the documentation lists the function as being in "system.fpd" that is <br>
probably it. You can look at that file (rtl/inc in the sources) to get <br>
an idea.<br></blockquote><div><br></div><div>Ok, thanks.<br></div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
First, where would be the breakage? Now it works with and without overload?<br></blockquote><div><br></div><div></div><div>If I write a unit that overloads the Pos function and code that uses the unit</div><div>and calls standard version of Pos without namespace prefix, than this code</div><div>will be broken if Pos becomes builtin.</div><div><br></div><div>(It just will not compile the code and the error "Incompatible type" is not clear</div><div>report the real problem.)<br></div><div><br></div><div>Now the cross unit overload does work for functions declared with the "overload"</div><div>keyword and does not without.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Second, while the chances are low, there are no guarantees. Avoid overly <br>
complex layering of the same symbol if you are afraid of this.<br></blockquote><div><br></div><div>I am not a gambler, I ask what is guaranteed.</div><div><br></div><div>The Pos is just an example. I can change it to any other symbol: Foo,</div><div>Default, Writeln, GetHash, DoSomething, StrToUtf8 etc. My general</div><div>question is: as a library developer which symbols can I declare to be sure</div><div>that user of the library will not face conflicts with standard declarations,</div><div>FPC RTL etc (and how to do the declarations properly)?<br></div><div><br></div><div>The answer I see: none because any identifier may become "builtin",</div><div>start to hardly conflict with any declarations with the same name and</div><div>become PITA for code maintainer.</div><div><br></div><div>Pity.<br></div></div><br><div>-- </div><div dir="ltr" class="gmail_signature"><div dir="ltr"><div>Victor Matuzenko (Виктор Матузенко)<br></div></div></div></div>