fpc/tests/test/tfuncref55.pp

33 lines
464 B
ObjectPascal

program tfuncref55;
{$mode objfpc}
{$modeswitch functionreferences}
procedure Test;
var
a: Char;
function DoTest(aArg: LongInt): String;
begin
if aArg > 0 then
Result := DoTest(aArg - 1) + a
else
Result := a;
end;
var
func: reference to function(aArg: LongInt): String;
begin
a := 'a';
func := @DoTest;
if func(4) <> 'aaaaa' then
Halt(1);
a := 'b';
if func(6) <> 'bbbbbbb' then
Halt(2);
end;
begin
Test;
end.