On Sunday, 1 September 2019 at 20:50:42 UTC, Paul Backus wrote:
On Sunday, 1 September 2019 at 20:42:28 UTC, Jabari Zakiya wrote:
It still won't compile, with this error.

Error: AliasSeq!(modpg, res_0, restwins, resinvrs) is not an lvalue and cannot be modified

Here's a gist of the code.

Top functions in code with issues are genPgParameters and selectPG

https://gist.github.com/jzakiya/9227e4810e1bd5b4b31e949d1cbd5c5d

You can't do multiple assignments at once using AliasSeq; you have to assign each variable individually:

auto parameters = genPgParameters(pg);
modpg = parameters[0];
res_0 = parameters[1];
restwins = parameters[2];
resinvrs = parameters[3];

There's still are problem When I do this.

auto parameters = genPgParameters(pg);
  modpg = parameters[0];
  res_0 = parameters[1];
  restwins = parameters[2];
  resinvrs = parameters[3];

The compiler says this:

Error: cannot implicitly convert expression parameters.__expand_field_3 of type uint[] to shared(uint[])

If I comment out the last line the programs compiles (and crashes when run since all the parameters aren't available).

So why does it accept parameter[2] but not [3] as they are both defined the same?

Is this a compiler bug?

I have to say, getting this simple parameter passing to work in D has been an infuriating experience. :-(

Reply via email to