Brad Roberts wrote:
In the D spirit of things, ie, stay conservative:
If you can prove that the closure of code that the static constructor
touches doesn't escape the file, which you can do fairly easily and you
can guarantee that you've got all the code for that check, then the ctor
could be flagged as self-contained and take itself out of the running for
loop detection.
Later, potentially more aggressive logic could be written, time and/or
volunteers permitting.
There is a problem with that - the error message about circular
dependencies will come and go in a fairly erratic manner (at least from
the user's perspective).