Just found that the below works.
Note, that the result type of "a" (overridden) is different.
Well, TFoo2 will always satisfy the needs of TFoo, so it seems save. I
still found it surprising. Is it intended?
program Project1;
type
TFoo= class
public
function a: TFoo; virtual;
end;
TFoo2= class(TFoo)
public
function a: TFoo2; override;
end;
function TFoo2.a: TFoo2;
begin
end;
function TFoo.a: TFoo;
begin
end;
begin
end.
_______________________________________________
fpc-devel maillist - [email protected]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel