> On Apr 29, 2020, at 11:28 AM, Guy Steele <[email protected]> wrote:
> 
> Appealing, but it does raise the question of whether, if the programmer uses 
> some sneaky trick such as calling super, this can really be enforced ar 
> compile time on all cases. If it can (after all), then your proposed wording 
> looks good to me. 

The idea would be to rely on the definition of "assign to" in JLS 16. That uses 
a heuristic that counts "x =" or "this.x =" (and, in javac, but not currently 
specified properly, "(this).x", etc.)

Stepping back: in general, it's illegal to assign to a final field. There's one 
exception: inside a constructor, where the field is DU, using an assignment 
that satisfies the heuristic. In any other case, you get an error.

So the language has carved out a small hole permitting assignments, and this 
rule closes that hole.

Reply via email to