[fpc-devel] Gaps in a non-contiguous enum
Ondrej Pokorny
lazarus at kluug.net
Tue Aug 16 13:44:57 CEST 2022
Am 16.08.2022 um 13:19 schrieb Michael Van Canneyt via fpc-devel:
> On Tue, 16 Aug 2022, Ondrej Pokorny via fpc-devel wrote:
>> --- code end
>>
>> Run it in Delphi and FPC and compare the outputs:
>>
>> Delphi output:
>> PropCount: 0
>> Property info is null
>>
>> FPC output:
>> PropCount: 1
>> Property name: Fruit
>> Property kind: tkEnumeration
>>
>> As you can see FPC creates a valid PropInfo for the property with
>> valid TypeInfo (PI^.PropType) of the kind tkEnumeration! This is
>> definitely wrong.
>>
>> So the solution is either:
>>
>> 1.) don't create PropInfo for the Fruit property like Delphi.
>> - or -
>> 2.) PropType must not be thEnumeration. It should be either tkInteger
>> or a new custom value like tkCEnumeration or whatever. Because
>> thEnumeration means it has the enumeration TypeInfo with GetEnumName
>> and GetEnumValue.
>
> tkInteger or no propinfo at all seems the only correct solution to me,
> with
> slight preference for no propinfo at all.
Sorry I forgot - a third solution that you and Martin suggested before
is also OK:
3.) compile error when the Fruit property is published (it is allowed
only in the private..public sections).
So, I suggest:
*) Delphi mode: ignore the PropInfo (Delphi compatibility)
*) ObjFpc mode: compiler error (because you prefer no propinfo at all
and ObjFpc is usually more strict than Delphi).
I've done some PropInfo work before, I assume I could prepare a patch
for it. Can I start with this work?
Ondrej
More information about the fpc-devel
mailing list