On 6/27/23 6:34 PM, Adam D Ruppe wrote:
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 particular the practice of adding new members based on introspecting other members is suspect. I've done it too, but I think it probably would be better if we didn't allow this kind of stuff, or came up with a sane way to do this.

This leads to all kinds of weird stuff. Like if you instantiate a template with the current type being compiled, that template is locked to that type *at that point in compilation*. Then you look at it outside the type, and the value is already cached.

-Steve

Reply via email to