Adding empty static this() causes exception

Biotronic via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Sep 13 01:25:22 PDT 2017


On Tuesday, 12 September 2017 at 19:59:52 UTC, Joseph wrote:
> The compiler shouldn't arbitrarily force one to make arbitrary 
> decisions that waste time and money.

Like having a type system? Having to do *cast(int*)&s to 
interpret a string as an int isn't strictly necessary, and wastes 
dev time when they have to type extra letters.

Throwing an exception when there are import cycles that may cause 
problems is absolutely the correct thing to do. It's a choice 
between hard-to-figure-out errors that may depend on the order in 
which files were passed to the linker, and getting an exception 
before you've even started running your tests. If we could get 
this message at compile-time, that would of course be better, but 
that cannot be done in the general case due to separate 
compilation. If you want such a message in the cases where it is 
possible, feel free to create a pull request.

It would be possible to add a way to say 'ignore cycles for this 
module ctor', but as has been pointed out, cycles are generally a 
symptom of poor architecture, are brittle, and can almost always 
be avoided (and when they can't, there's a way around that too).

--
   Biotronic


More information about the Digitalmars-d-learn mailing list