[fpc-pascal] New Warnings with fpc >= 3.2.0
Santiago A.
svaa at ciberpiula.net
Fri Mar 13 17:56:30 CET 2020
El 11/03/2020 a las 16:37, wkitty42 at windstream.net escribió:
> On 3/11/20 11:35 AM, fredvs via fpc-pascal wrote:
>>> f (kind in tabulatorkindty) then
>>
>> Yes, I like it!
>>
>> But, sadly, the compiler no.
>>
>> "Error: Operator is not overloaded"...
>
>
> that's weird... i thought that construct was standard for arrays and
> similar... hummm...
You should define
type Set_Of_tabulatorkindty= set of tabulatorkindty;
const
AlltabValues:Set_Of_tabulatorkindty=[low(tabulatorkindty)..high(tabulatorkindty)];
then
if (kind in AlltabValues) then
is right
Nevertheless, "kind" is of type "tabulatorkindty", so it is always in
the range. The only case when it is not in the range is if it is
uninitialized. And in Pascal, fields of objects are initialized (nil, or
zero, or empty string etc), but uninitilized variables don't contain
uninitialized values, contain garbage, dangerous garbage.
So, in pascal, you don't test if a variable contains an uninitiliazed
value, you initialize it before referring the variable.
And before assigning a value, you verify it is in the range.
--
Saludos
Santiago A.
More information about the fpc-pascal
mailing list