<div dir="auto"><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Tomas Hajny via fpc-devel <<a href="mailto:fpc-devel@lists.freepascal.org">fpc-devel@lists.freepascal.org</a>> schrieb am Fr., 18. Dez. 2020, 11:38:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 2020-12-18 10:01, Blaise--- via fpc-devel wrote:<br>
<br>
<br>
Hello,<br>
<br>
> The patch <a href="http://hg.blaise.ru/public/fpc/rev/698389953e49" rel="noreferrer noreferrer" target="_blank">http://hg.blaise.ru/public/fpc/rev/698389953e49</a> (attached)<br>
> fixes the following:<br>
> -------8<-------<br>
> // EXPECTED: 'Error: Illegal function result type'<br>
> // ACTUAL: gets compiled<br>
> type M = function : file;<br>
> <br>
> begin<br>
> end.<br>
> -------8<-------<br>
<br>
Sorry for a silly question, but conceptually - why a file (which is <br>
technically a record) shouldn't be allowed if records are allowed and <br>
the result (i.e. the file) may be assigned to another variable of the <br>
type file? Do you have any information why the compiled functionality <br>
wouldn't work correctly?<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Because TP and Delphi don't allow it either. In fact FPC doesn't allow it as well for function declarations, but for function and method variables a different code path is used. </div><div dir="auto"><br></div><div dir="auto">Sidenote: it also isn't allowed to pass file type parameters by value (the compiler checks this) which is why you always see them with "var" or "const". </div><div dir="auto"><br></div><div dir="auto">Regards, </div><div dir="auto">Sven </div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
</blockquote></div></div></div>