<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <p>Hi Gavin,<br>
      the changes look good, thanks! Some minor comments below:</p>
    <p>* "If a constructor body does not begin with contain an explicit
      constructor invocation and the constructor being declared is not
      part of the primordial class Object, then the constructor body
      implicitly begins with a superclass constructor invocation
      "super();", an invocation of the constructor of its the direct
      superclass that takes no arguments."</p>
    <p>Should we use the newly introduced terminology here (to make
      things extra clear)? E.g. say that if the constructor does not
      contain an explicit constructor invocation, then all statements
      are implicitly treated as epilogue, there's no prologue, and the
      explicit constructor is "super()".</p>
    <p>* "It is a compile-time error for a constructor to directly or
      indirectly invoke itself through a series of one or more alternate
      constructor invocations."</p>
    <p>I found this confusing -- after all constructor of A can do "new
      B()" which can then do "new A()". Does the constructor invoke
      itself? I think you mean "invoke itself _on the same receiver
      object_" ?</p>
    <p>* The fixes to 8.8.7.1 and 15.9.2 look good! (the PR for them is
      in [1])<br>
      <br>
      Maurizio<br>
    </p>
    <p><br>
    </p>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 01/11/2024 16:04, Gavin Bierman
      wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:2C1DE5FA-44F5-4D80-81F2-90BF21574EC4@oracle.com">
      
      <div>Dear experts:</div>
      <div><br>
        The first draft of a spec covering JEP 492: Flexible Constructor
        Bodies (Third Preview) is available:<br>
      </div>
      <div><br>
      </div>
      <a href="https://cr.openjdk.org/~gbierman/jep492/latest/" moz-do-not-send="true" class="moz-txt-link-freetext">https://cr.openjdk.org/~gbierman/jep492/latest/</a>
      <div><br>
      </div>
      <div>(As the feature is unchanged from the second preview, this
        spec is the same as the previous edition but with a small number
        of minor bugfixes.)</div>
      <div><br>
      </div>
      <div>Feel free to contact me directly or on this list with any
        comments.<br>
        <br>
        Thanks<br>
        Gavin</div>
      <div><br id="lineBreakAtBeginningOfMessage">
        <div><br>
          <blockquote type="cite">
            <div>On 2 Oct 2024, at 14:14, Mark Reinhold
              <a class="moz-txt-link-rfc2396E" href="mailto:mark.reinhold@oracle.com"><mark.reinhold@oracle.com></a> wrote:</div>
            <br class="Apple-interchange-newline">
            <div>
              <div><a class="moz-txt-link-freetext" href="https://openjdk.org/jeps/492">https://openjdk.org/jeps/492</a><br>
                <br>
                 Summary: In constructors in the Java programming
                language, allow<br>
                 statements to appear before an explicit constructor
                invocation, i.e.,<br>
                 super(..) or this(..).  The statements cannot reference
                the instance<br>
                 under construction, but they can initialize its fields.
                 Initializing<br>
                 fields before invoking another constructor makes a
                class more reliable<br>
                 when methods are overridden.  This is a preview
                language feature.<br>
                <br>
                - Mark</div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
  </body>
</html>