> On May 4, 2020, at 10:44 PM, Michael Van Canneyt <mich...@freepascal.org> 
> wrote:
> 
> That is how enums work by default in Pascal.
> 
> If you don't force scoped enums, you can still scope them.
> 
> if you use
> $scopedenums on then you simply force the use instead of having it optional.

But the names collide then, that's the whole point. We want to protect against 
name collisions and we don't want to type long prefix names every time. Scoped 
enums fixes half of that by formalizing the prefix syntax but you still need to 
type it even when it could be inferred by context.

Swift figured out how to do this and so should Pascal imo.


From https://docs.swift.org/swift-book/LanguageGuide/Enumerations.html:

Each enumeration definition defines a new type. Like other types in Swift, 
their names (such as CompassPoint and Planet) start with a capital letter. Give 
enumeration types singular rather than plural names, so that they read as 
self-evident:

        • var directionToHead = CompassPoint.west

The type of directionToHead is inferred when it’s initialized with one of the 
possible values of CompassPoint. Once directionToHead is declared as a 
CompassPoint, you can set it to a different CompassPoint value using a shorter 
dot syntax:

        • directionToHead = .east

Regards,
        Ryan Joseph

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to