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