Ok, I now understand the argument. However:
- I doubt that the public → property conversion doesn’t happen. I personally have done it for a public package. It might not be prevalent, but I would judge that that is probably more because it’s not that common to have a public field you want to make private without being willing to break compatibility.
- AFAICT, this is an argument for making everything
_sunderprivate, no?
Additionally, you have no defined what your proposed local does inside a class. You have shown what it does in a normal execution environment, but that does not at all translate to what behavior you expect inside a class. Currently all you have shown is introducing “block scopes”, and that is a common proposal that has been met with “meh” to “no” in the past.