<div dir="ltr"><div>Hello,</div><div><br></div><div>I did some more thinking and have clarified my responses.<br></div><div><br></div><div>
<div>
On Wed, Oct 2, 2024 at 9:30 AM <<a href="mailto:forax@univ-mlv.fr" target="_blank">forax@univ-mlv.fr</a>> wrote: <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
1) If you have a code like:<br>
  String s = f();<br>
  g(s);

</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">If 's' has its null-marker computed automatically, the null marker will <br>flow naturally without the user having to update his code each time the <br>API of a dependency is updated to use null-marker.</blockquote><br>I don't follow. If I null-marked my code consistently, why would I need to <br>update it when my API dependencies change? On the other hand, if I marked <br>my code inconsistently with my API dependencies, then I probably need to <br>update my code, because my assumptions were incorrect!

</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
2) until now, the type of a local variable would never change, we have 
even introduced the concept of binding to explicitly avoid a local 
variable to have its type changed.<br>
But we also want the nullability part of the type of a local to change 
dependending on the control flow, so having a way to denote the 
nullability on a local's type given that it can changed is weird.</blockquote><div><br></div>To put my earlier comments much more succinctly, "nullability" is not the <br>same as "nullness". The nullability of a variable's type is always how it <br>is null-marked. Nullability does not change, regardless of control flow.<br><br>Nullness does change with control flow. Values of nullable types have <br>different nullness at different points in a program.<div><br></div><div>Declaring static nullability enhances dynamic nullness analysis and <br></div><div>helps detect bugs.</div><br><div>For that reason, we should allow and encourage null-marking local </div><div>variables.</div><div><br></div><div>Cheers,</div><div>Clement Cherlin<br></div></div>