Type helpers don't support overloading
Type helper overloading was never extended to support $modeswitch multihelpers so the following program will fail. This seems to have been an omission on my part so I will fix this myself.
{$modeswitch typehelpers}
{$modeswitch multihelpers}
type
TMyHelper1 = type helper for integer
procedure DoThis(f: integer); overload;
end;
TMyHelper2 = type helper for integer
procedure DoThis(f: string); overload;
end;
procedure TMyHelper1.DoThis(f: integer);
begin
writeln(self, ' => ', f);
end;
procedure TMyHelper2.DoThis(f: string);
begin
writeln(self, ' => ', f);
end;
var
i: integer = 0;
begin
i.DoThis(0); // Got "ShortInt", expected “ShortString"
Edited by Ryan Joseph