"Jonas Maebe" wrote 12 lines
On 13/10/15 19:59, Mohsen wrote:
>
> if (idtoken in [_EXPORT,_EXTERNAL,_WEAKEXTERNAL,_PUBLIC,_CVAR]) then
>
> ptconst.pas(95,45) Error: range check error in set constructor or
> duplicate set element
>
> how to solve it ?
Pascal sets can only contain values/enumerations whose ordinal value is
<= 255. There are more than 256 tokens already. If you add new tokens at the start, existing tokens may get an ordinal value > 255, so existing set expressions that previously worked may now fail.
The only way to solve that is to remove the items whose ordinal values
are > 255 from set expressions and to test for them using the regular '=' operator.
Maybe I should start to work on the support for array constructors and operators once generic functions and dynamic packages are working... :P
Regards,
Sven