Hi,

I have some problems with adopting my code to a breaking change introduced in version 2.063. Apparently, now it's not anymore possible to instantiate an immutable object via:

auto object = new immutable(SomeClass)(contructor_args...);

without also defining either

this(constructor_args...) immutable {...}

or

this(constructor_args...) pure {...}


As much as I think that this change will make the system more consistent, I don't know how to fix my code. Often, in a constructor you pass other objects (via constructor dependency injection), and it seems that I have to fix a hell of a lot of dependency code that way. Is there a simple way of emulating the way it "just magically worked" in version 2.062?

For example, is there a way of instantiating an object normally (i.e. mutable), and then later "freeze" it to immutable via a simple cast or so?

Thanks,

Stephan

Reply via email to