Hello,

Somehow it can't reach map and array inside a class field initializer. If I put that small expression inside a function, it works. If I encapsulate the initializer expression into a lambda and evaluate it right away, it also works. Only the nice form fails.

Why is that?

```d
import std;

enum E{a, b, c}

static struct S{
    const E e;
    string otherProperties;
}

//trying to initialize an array inside

static if(1) class D{
//this fails: Error: function `onlineapp.D.map!(E[]).map` need `this` to access member `map`
  auto x = [EnumMembers!E].map!(e => S(e)).array;
}

auto initialS(){
  return [EnumMembers!E].map!(e => S(e)).array;
}

class C{
  auto x = initialS; //this way it works
}

void main(){
    writeln((new C).x);
}
```

Reply via email to