mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-07 17:47:56 +02:00

also check in parent objectdef in case of overload and nothing found in the current objectdef (mantis #18706) git-svn-id: trunk@19736 -
50 lines
717 B
ObjectPascal
50 lines
717 B
ObjectPascal
{$MODE DELPHI}
|
|
|
|
type
|
|
|
|
TExecProc = procedure of object;
|
|
|
|
TA = class
|
|
public
|
|
procedure P1; overload; virtual;
|
|
procedure P1(const param: boolean); overload; virtual;
|
|
end;
|
|
|
|
TB = class(TA)
|
|
public
|
|
procedure P1(const param: boolean); override;
|
|
end;
|
|
|
|
procedure ShowProc(p: TExecProc);
|
|
begin
|
|
p;
|
|
end;
|
|
|
|
procedure TA.P1;
|
|
begin
|
|
writeln('1');
|
|
end;
|
|
|
|
procedure TA.P1(const param: boolean);
|
|
begin
|
|
writeln('2');
|
|
halt(1);
|
|
end;
|
|
|
|
procedure TB.P1(const param: boolean);
|
|
begin
|
|
writeln('3');
|
|
halt(2);
|
|
end;
|
|
|
|
var
|
|
a: TA;
|
|
b: TB;
|
|
begin
|
|
a := TA.Create;
|
|
b := TB.Create;
|
|
|
|
ShowProc(a.P1); // compile and execute correctly
|
|
ShowProc(b.P1); // error on compile !!! but here should be call TA.P1 !!!
|
|
end.
|