Oh, right—thanks for this correction.

—Guy

On May 15, 2023, at 4:41 PM, Archie Cobbs <[email protected]> wrote:

On Mon, May 15, 2023 at 3:00 PM Guy Steele 
<[email protected]<mailto:[email protected]>> wrote:
12.5 In the list of six steps for processing a constructor, the logic is a bit 
difficult to follow because of nonparallelism, recapitulation, and a mixture of 
explicit “goto” instructions with drop-through. I suggest this refactored 
structure:

That's a nice cleanup - thanks.

It looks like step 4 is redundant:

1.  Assign the arguments for the constructor to newly created parameter 
variables for this constructor invocation.

2.  If this constructor does not contain an explicit constructor invocation 
(8.8.7.1), go to step 4; otherwise, continue with step 3.

3.  Execute the BlockStatements, if any, of the prologue of the constructor 
body. If execution of any statement completes abruptly, then execution of the 
constructor completes abruptly for the same reason; otherwise, continue with 
step 4.

4.  If this constructor does not contain an explicit constructor invocation 
(8.8.7.1), go to step 6; otherwise, continue with step 5.

So step 4 can be removed, and step 2 can "goto step 6" (of course once step 4 
is removed, steps 5+ get renumbered so that change ultimately becomes "goto 
step 5").

-Archie

--
Archie L. Cobbs

Reply via email to