[fpc-devel] Bug? "overload" between class.method and plain procedure ?
Martin Frb
lazarus at mfriebe.de
Sat Dec 11 11:30:11 CET 2021
Should overload work for the following?
Upon seeing the method being overloaded, if (in the class hierarchy) no
method with matching signature is found, should procedures outside the
class be searched?
> project1.lpr(19,8) Error: Incompatible type for arg no. 1: Got
"ShortInt", expected "Boolean"
In the below example, I could write "project1.Foo(1); ". But if I had
various "Foo" in various included units, then it would be inconvenient
to always have to find the correct unit myself.
The doc https://www.freepascal.org/docs-html/ref/refsu86.html does not
contain any references to classes. It only refers to cross unit.
program Project1;
{$mode objfpc}{$H+}
procedure Foo(a: integer); forward; overload;
type
TBar = class
public
procedure Foo(a: boolean); overload;
procedure Bar;
end;
procedure TBar.Foo(a: boolean);
begin
end;
procedure TBar.Bar;
begin
Foo(1); //project1.lpr(19,8) Error: Incompatible type for arg no. 1:
Got "ShortInt", expected "Boolean"
end;
procedure Foo(a: integer);
begin
end;
begin
end.
More information about the fpc-devel
mailing list