<div dir="ltr"><div>Hi Alex,</div><div><br></div><div>Thanks for your thoughtful review & comments.<br></div><div><br></div><div>-Archie<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, May 18, 2023 at 6:53 PM Alex Buckley <<a href="mailto:alex.buckley@oracle.com">alex.buckley@oracle.com</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">Hi Archie,<br>
<br>
Your updates to the JEP are excellent in every way. Thank you.<br>
<br>
Alex<br>
<br>
On 5/18/2023 3:56 PM, Archie Cobbs wrote:<br>
> Hi Alex,<br>
> <br>
> Great comments, thanks....<br>
> <br>
> On Thu, May 18, 2023 at 2:25 PM Alex Buckley <<a href="mailto:alex.buckley@oracle.com" target="_blank">alex.buckley@oracle.com</a> <br>
> <mailto:<a href="mailto:alex.buckley@oracle.com" target="_blank">alex.buckley@oracle.com</a>>> wrote:<br>
> <br>
> ... the Non-Goals should focus on what the end user (a developer) will<br>
> see or not see. Finally, almost no-one will be able to figure out what<br>
> this means -- "There are many ways in which the interplay between<br>
> superclass constructors and subclass initialization might be improved"<br>
> -- so please either explain (in a very small space) or remove.<br>
> <br>
> <br>
> Agreed - removed.<br>
> <br>
> I'm saying that millions of lines of code exist because people<br>
> explicitly<br>
> coded around the restriction you're now removing, so there's a huge<br>
> amount of refactoring that is (a) possible and (b) desirable, so we<br>
> _assume_ that static analyzers and IDEs will promote this<br>
> refactoring to<br>
> their users. If you don't say this in the JEP, no-one will know it.<br>
> No-one knows as much as you about this feature, so please share :-)<br>
> <br>
> <br>
> Good point.. I've added some more verbiage to Risks & Assumptions.<br>
> <br>
> I also added some language to highlight the fact that this <br>
> "pre-construction" context we are creating is not really new - the rules <br>
> are the same as already apply to the this()/super() parameter expressions.<br>
> <br>
> So hopefully that is a big hint to any tool providers that they already <br>
> know how to treat the code in the constructor prologue.<br>
> <br>
> I would like to enrich the "Implementing fail-fast" subsection by<br>
> acknowledging the fine idiom of _telescoping constructors_, where<br>
> simpler constructors delegate to richer constructors by using<br>
> `this(..)`<br>
> to pass default arguments (see <a href="https://stackoverflow.com/a/285187" rel="noreferrer" target="_blank">https://stackoverflow.com/a/285187</a><br>
> <<a href="https://urldefense.com/v3/__https://stackoverflow.com/a/285187__;!!ACWV5N9M2RV99hQ!O-9cBnMpSBttTFUwyTA_mphXNEnUrb691HNu5nTJkieZQZMkA1UgNTyTpWa05uE-RnIz8ZnI_-8soiSv_GkKYHs1Sw$" rel="noreferrer" target="_blank">https://urldefense.com/v3/__https://stackoverflow.com/a/285187__;!!ACWV5N9M2RV99hQ!O-9cBnMpSBttTFUwyTA_mphXNEnUrb691HNu5nTJkieZQZMkA1UgNTyTpWa05uE-RnIz8ZnI_-8soiSv_GkKYHs1Sw$</a>>). In<br>
> any intermediate constructor of non-zero arity, being able to check the<br>
> arguments before delegation could be useful.<br>
> <br>
> <br>
> "Telescoping constructors" is definitely a worthy use case for this <br>
> feature... I like that and have added it.<br>
> <br>
> And a good real-world example comes from none other than java.lang.Thread.<br>
> <br>
> -Archie<br>
> <br>
> -- <br>
> Archie L. Cobbs<br>
</blockquote></div><br clear="all"><br><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature">Archie L. Cobbs<br></div>