On Sunday, 14 September 2014 at 22:58:44 UTC, David Nadlinger wrote:
On Sunday, 14 September 2014 at 07:35:12 UTC, Daniel Murphy wrote:
I do acknowledge this is a problem, but I am yet to run into it in actual D code. Most of my static ifs are either inside templates, inside functions, or are being used to bypass version's limitations.

I tend to run into forward referencing issues all the time "declarative" metaprogramming, i.e. when generating some code based on existing symbols and their attributes (e.g. serialization, RPC, …). Manu IIRC also has some related war stories to tell.

Granted, it's not the directly the same as two ifs next to each other conflicting (you mostly get dependencies via __traits(allMembers, …) and so on), but whatever forward reference resolution mechanism we choose must be able to handle both the same.

David

Yes, this is not uncommon way to hit the wall. Separating reflection/generation "stages" into different modules and keeping an eye for cyclic imports seems like a best way to address it right now in my opinion.

Reply via email to