Bug 6146 – A way to mark a static construct as having no dependencies

Status
RESOLVED
Resolution
WONTFIX
Severity
enhancement
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2011-06-11T00:19:00Z
Last change time
2015-06-09T05:14:44Z
Assigned to
nobody
Creator
issues.dlang

Comments

Comment #0 by issues.dlang — 2011-06-11T00:19:12Z
It would really help in dealing with circular dependencies between modules if it were possible to mark a static constructor as not having any dependencies. It's often the case, and it's a royal pain to get rid of a circular dependency once the compiler (or is it druntime?) decides that you have one. If you have a true circular dependency, then you need to redesign things, but if you don't, then the current status of things is _very_ annoying. It seems to me that it could be as simple as adding a new attribute (e.g. @nodeps) which only applied to static constructors and then that static constructor is then ignored in the tests for circular dependencies. I don't know how much work it would be to effect such a change, but it at least seems like it would be a fairly small change, and it would have major benefits. It's incredibly easy to get a circular dependency once you start using many static constructors, and the vast majority of the time there isn't really a dependency. So, having a means to indicate that a static constructor has no external dependencies would help a lot.
Comment #1 by issues.dlang — 2012-01-20T23:17:21Z
I'd love to have something like this, but Walter is completely against it, so it's never going to happen.