[fpc-devel] Abs(Variant) unexpected result

Michael Van Canneyt michael at freepascal.org
Sun Feb 25 17:59:15 CET 2018

On Sun, 25 Feb 2018, Bart wrote:

> On Sun, Feb 25, 2018 at 5:34 PM, Michael Van Canneyt
> <michael at freepascal.org> wrote:
>>> So, would it be possible to have an overloaded Abs(V: Variant):
>>> Variant; function in the variants unit?
>> I advise against it.
>> S : String;
>> begin
>>   S:='My very nice string';
>>   S:=Abs(S);
>> end;
>> Will then compile and give a run-time error, as opposed to a compile-time
>> error now.
> Did not think about that.
> Yeah, that's really bad.
> So, all we can do is let the compiler pick the float version for Abs(Variant)?

It seems so. Better yet, don't use variants. 
They violate what Pascal stands for: type safety.

If you really _must_ use them, do any conversions explicitly.


More information about the fpc-devel mailing list