> Le 31 mai 2024 à 18:08, Larry Garfield <la...@garfieldtech.com> a écrit :
> 
> However, this also brings up another interesting issue: readonly properties 
> (in 8.3) DO allow redeclaration, essentially adjusting the property scope 
> (the class that declares it) to make the visibility check pass. That is, the 
> definition of the class it is private to changes, which is different from how 
> inheritance works elsewhere.  When the parent writes to the same property, a 
> special check is needed to verify the two properties are related.  All that 
> special casing effectively means that readonly in 8.4 wouldn't really be 
> "write once + private(set)", but "write once + private(set) - final", which 
> is... just kinda screwy.  That means our options are:
> 
> * A BC break on readonly (not allowing it to be overridden)
> * Make readonly an exception to the implicit final.
> * Just don't allow readonly with aviz after all.

Another possible option is:

* Make readonly be `protected(set)` by default.

That would weaken the originally intended semantics of readonly, but in a 
compatible and acceptable way?

—Claude


Reply via email to