Anonymous nested procedure in record bug
The following program prints an erroneous value for TMyRec.field. Related to #39809 but does not crash. Probably related to the calling convention for anonymous procedures not being "is nested".
{$mode objfpc}
{$modeswitch advancedrecords}
{$modeswitch anonymousfunctions}
{$modeswitch nestedprocvars}
program anonymous_record_error;
type
TProc_Nested = procedure is nested;
type
TMyRec = record
field: integer;
procedure Test;
end;
procedure TMyRec.Test;
var
f: TProc_Nested;
begin
f := procedure
begin
writeln(field);
end;
f();
end;
var
r: TMyRec;
begin
r.field := 100;
r.Test;
end.