Using 'with'
user1234
user1234 at 12.de
Mon Jan 12 11:58:01 UTC 2026
On Monday, 12 January 2026 at 11:40:07 UTC, Vitaliy Fadeev wrote:
> On Monday, 12 January 2026 at 11:28:01 UTC, user1234 wrote:
>> On Monday, 12 January 2026 at 10:55:34 UTC, Vitaliy Fadeev
>> wrote:
>>> Hi! Did we know you could do this?
>>> To make the `enum` inside the `case` easier to read:
>>>
>>> [...]
>>>
>>> Check the **with (Event.Type)**.
>>
>> Yes this is a well known idiom, see
>> https://p0nce.github.io/d-idioms/#Qualified-switch-using-with.
>
> Wow! This looks great! Thanks!
To go further, while this trick is great, there's been
discussions [last
years](https://forum.dlang.org/thread/zbugncpaooowjsxldzue@forum.dlang.org) about _Parent Enum Inference_. Instead of
```
bitset |= 1 << EnumType.enumerator;
```
people want to the language to allow writing
```
bitset |= 1 << .enumerator; // EnumType can be infered from the
OrAssign LHS
```
in this case `with` is of no help because it introduces a scope,
because it's not an expression, and finally because it's only
used once.
More information about the Digitalmars-d-learn
mailing list