Calling the wrong function in Delphi mode + generic + with
FPC [main] x64 Win
program app;
{$mode delphi}
type
TTestObject = class
procedure Foo<T: class>;
end;
TObj = class
procedure kek;
destructor Destroy; override;
end;
procedure TTestObject.Foo<T>;
begin
Self.Free;
end;
destructor TObj.Destroy;
begin
WriteLn('kek');
end;
procedure TObj.kek;
begin
with TTestObject.Create do
Foo<TTestObject>;
end;
begin
TObj.Create.kek;
ReadLn;
end.Output:
kekExpected (nothing):
Edited by alligator