On Sunday, 2 September 2018 at 13:21:05 UTC, bauss wrote:
Is there a reason why you cannot create a separate scope within a static foreach?

The below will not compile:

```
enum a = ["a" : "a", "b" : "b", "c" : "c"];

static foreach (k,v; a)
{
    {
        enum b = k;
        enum c = v;
    }
}
```

It works if it's in a function of course.

This creates a big limitation when you're trying to ex. loop through members of inherited classes, interfaces etc. and then want to store the information in variables, because you cannot do it. Which means to work around it you have to do it all in an ugly one-liner.

Is it intended behavior? If so, why? If not is there a workaround until it can be fixed?

It's intended, but with the possibility to add special syntax for local declarations in the future left open, as per:
https://github.com/dlang/DIPs/blob/master/DIPs/accepted/DIP1010.md#local-declarations

Reply via email to