Hi Barney,

> Ah ok. Maybe that's the standard way internal classes are written, and we can 
> consider it generally an error for a child class to override the constructor 
> without calling `parent::__construct()`. I know tools warn users not to 
> forget the parent call.

Thanks, A fallback would be possible to always set the initial value to 0, but 
an error would probably be easier to understand.


> And I had been thinking of BcNum as a readonly class, but I see it's not an 
> readonly class, it's a mutable class with its one and only property being 
> readonly.  I agree that it seems unnecessary to force child classes to be 
> immutable - I wasn't concerned about them adding additional, mutable, 
> properties, only about leaving the value property uninitialized. (Btw I would 
> have supported the 1st part of the 2022 Readonly amendments RFC, which I 
> think would have made a readonly class behave the same as a class where every 
> property is readonly, particularly since would have allowed implementing the 
> example given on the Wikipedia page for LSP: a circle with fixed centre and 
> mutable radius may inherit from an immutable point)

Ah, sorry about that, I completely forgot about the readonly class! In that 
case, it might make sense to make the classes completely immutable, since users 
are already accustomed to using such classes.

This is a departure from what I said in my previous email, but how do you think 
about making it a read-only class?

Regards.

Saki

Reply via email to