On Tuesday, 27 June 2023 at 22:20:22 UTC, Chris Katko wrote:
                pragma(msg, t.stringof); // does not see any new fields!

D's declarations are all order-independent, in theory those foreaches are done simultaneously, so it is kinda a race condition.

In practice, the compiler does them in two passes but both based on the same initial state.

Adding stuff and then reflecting over the stuff you add must be done as explicit steps on the outside, like you can make a `struct step1 {}` then `alias step2 = transform!step1;` then `alias step3 = transform_again!step2;` or something.

Reply via email to