<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div class="moz-cite-prefix">Am 11.09.2022 um 11:26 schrieb Sven
Barth via fpc-pascal:<br>
</div>
<blockquote type="cite"
cite="mid:CAFMUeB9Xmj8i9MT8JQz6o4LxbMOUgOsnLzxyGQOsd3V2mvZz9Q@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="auto">
<div>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">Hairy Pixels <<a
href="mailto:genericptr@gmail.com"
moz-do-not-send="true" class="moz-txt-link-freetext">genericptr@gmail.com</a>>
schrieb am Sa., 10. Sep. 2022, 03:21:<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
> On Sep 9, 2022, at 4:48 PM, Sven Barth <<a
href="mailto:pascaldragon@googlemail.com"
target="_blank" rel="noreferrer" moz-do-not-send="true"
class="moz-txt-link-freetext">pascaldragon@googlemail.com</a>>
wrote:<br>
> <br>
> How about you simply report such corruptions as bugs?
I can always close them as "not a bug" or duplicate if
necessary. <br>
> <br>
<br>
Well I thought the data may have been saved on the stack
and thus lost when the function exits. What is the
expected behavior for passing these outside of the calling
scope?<br>
</blockquote>
</div>
</div>
<div dir="auto"><br>
</div>
<div dir="auto">Looking at your example again - I'm only on my
phone currently - it's indeed your fault because the state
passed to a nested function variable does *not* survive the
stack frame it belongs to. That's where function references
shine, because there the state *does* survive.</div>
</div>
</blockquote>
<p>Shouldn't this assignment be forbidden?</p>
<pre class="moz-quote-pre" wrap="">type
TProc = procedure is nested;
function TestNested: TProc;
begin
result := procedure // why is this possible?
begin
writeln(data);
end;
It is not a nested function but an anonymous one.
Ondrej
</pre>
<p></p>
</body>
</html>