mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-12 14:10:59 +02:00
40 lines
827 B
ObjectPascal
40 lines
827 B
ObjectPascal
{ this tests that the correct method is called if a helper overloads an
|
|
existing function and calls the original one recursively }
|
|
program thlp45;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
type
|
|
TTest = class
|
|
function Test(aRecurse: Boolean; aTest: String): Integer;
|
|
end;
|
|
|
|
TTestHelper = class helper for TTest
|
|
function Test(aRecurse: Boolean; aTest: array of String): Integer; overload;
|
|
end;
|
|
|
|
function TTest.Test(aRecurse: Boolean; aTest: String): Integer;
|
|
begin
|
|
Result := 1;
|
|
end;
|
|
|
|
function TTestHelper.Test(aRecurse: Boolean; aTest: array of String): Integer;
|
|
begin
|
|
if aRecurse then
|
|
Result := Test(False, aTest[0])
|
|
else
|
|
Result := 2;
|
|
end;
|
|
|
|
var
|
|
t: TTest;
|
|
res: Integer;
|
|
begin
|
|
t := TTest.Create;
|
|
res := t.Test(True, ['Test']);
|
|
Writeln('t.Test: ', res);
|
|
if res <> 1 then
|
|
Halt(1);
|
|
Writeln('ok');
|
|
end.
|