<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2013/10/30 Jonas Maebe <span dir="ltr"><<a href="mailto:jonas.maebe@elis.ugent.be" target="_blank">jonas.maebe@elis.ugent.be</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


On 30 Oct 2013, at 10:36, Michael Van Canneyt wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I think it is an error. You declare something as private, and then you use it in a public function ? If that is not a visibility clash, I don't know what is :)<br>
</blockquote>
<br>
The ability to use types in public functions that are not necessarily visible to users of that function is quite common in Pascal. Otherwise, for consistency you would also have to give a compile time error when compiling this:<br>


<br>
unit u1;<br>
<br>
interface<br>
<br>
type<br>
  tdynarray = array of integer;<br>
<br>
implementation<br>
<br>
end.<br>
*********<br>
<br>
unit u2;<br>
<br>
interface<br>
<br>
uses<br>
  u1;<br>
<br>
function f: tdynarray;<br>
<br>
implementation<br>
<br>
function f: tdynarray;<br>
begin<br>
end;<br>
<br>
end.<br>
**********<br>
<br>
program test;<br>
<br>
uses<br>
  u2;<br>
<br>
var<br>
  a: array of integer;<br>
begin<br>
  a:=f;<br>
end.<br>
***<br>
<br>
The tdynarray type is not visible in the program because u1 is not in its uses clause (it's not in scope whatsoever), and nevertheless there is no problem to use it. It's of course not exactly the same (tdynarray isn't declared as private to u1), but at the scope visibility level it is the same situation as far as I am concerned.<br>


</blockquote></div><br></div><div class="gmail_extra">Precisely, shouldn't this trigger an error too? The code should not be able to reference anything for which the declaration isn't visible, isn't it?<br clear="all">

</div><div class="gmail_extra"><br>-- <br>Frederic Da Vitoria<br>(davitof)<br><br>Membre de l'April - « promouvoir et défendre le logiciel libre » - <a href="http://www.april.org" target="_blank">http://www.april.org</a><br>


</div></div>