I like the idea of using existing operators since that avoids extra
intrinsics and the risk of breaking code that uses a function with the
same proposed name.
The "as" operator is possible for assignment, although I'm not the
biggest fan of run-time errors (although they have their uses). The
"is" operator sounds like a good partner as well, like how as and is are
used to check if an object belongs to a particular class family.
e.g. "If (Value is TEnumType) then" returning False if it is outside of
the range.
Though I'm only a developer and not one of the moderators or
administrators, the patch in principle has my blessing. There might be
options for optimisation further down the line, but we'll get to that later!
Gareth aka. Kit
On 02/07/2019 20:15, Michael Van Canneyt wrote:
Don't forget to check the post of Ondrej.
Personally, I think using 'as' to convert an integer to an enum with
range
check is still the best approach. It does not require new intrinsics (far
too many of those already) and does what it says. To simply check if an
integer is a valid enum, I think 'is' would be equally suitable.
Michael.
On Tue, 2 Jul 2019, J. Gareth Moreton wrote:
Aah, thank you.
On 02/07/2019 19:56, Michael Van Canneyt wrote:
On Tue, 2 Jul 2019, J. Gareth Moreton wrote:
I don't recall a conversation where such an intrinsic is seen as
desirable, but if such a construct is desirable, then that's a good
thing since it will help patch up this problem.
As for the Delphi problem, it's second-hand information I heard
from a friend who uses Delphi at work and something about not
handling out-of-range enumerations was a deal-breaker from not
using FPC. I may have some details wrong though. But all that
side, would development of an intrinsic be an acceptable solution,
and what name are we going for? (One has to be careful we don't
break existing code if possible)
See this thread:
https://www.mail-archive.com/fpc-devel@lists.freepascal.org/msg35100.html
Michael.
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel