Add jep513 module: flexible constructor bodies on JDK 25 and 27
Runnable sources, broken examples and captured transcripts for the ankurm.com JEP 513 article, including the JDK 25 vs 27 compiler wording differences. Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01TF9JWFvJSNm6HVzswzZU5a
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
$ javac broken/ReadFieldBeforeSuper.java (25.0.4.1+1)
|
||||
ReadFieldBeforeSuper.java:5: error: cannot reference size before supertype constructor has been called
|
||||
1 error
|
||||
$ javac broken/ReadFieldBeforeSuper.java (27+35)
|
||||
ReadFieldBeforeSuper.java:5: error: reference to size may only appear after an explicit constructor invocation
|
||||
1 error
|
||||
|
||||
$ javac broken/CallMethodBeforeSuper.java (25.0.4.1+1)
|
||||
CallMethodBeforeSuper.java:5: error: cannot reference compute() before supertype constructor has been called
|
||||
1 error
|
||||
$ javac broken/CallMethodBeforeSuper.java (27+35)
|
||||
CallMethodBeforeSuper.java:5: error: reference to compute() may only appear after an explicit constructor invocation
|
||||
1 error
|
||||
|
||||
$ javac broken/PassThisBeforeSuper.java (25.0.4.1+1)
|
||||
PassThisBeforeSuper.java:4: error: cannot reference this before supertype constructor has been called
|
||||
1 error
|
||||
$ javac broken/PassThisBeforeSuper.java (27+35)
|
||||
PassThisBeforeSuper.java:4: error: reference to this may only appear after an explicit constructor invocation
|
||||
1 error
|
||||
|
||||
$ javac broken/ReadFinalBeforeAssign.java (25.0.4.1+1)
|
||||
ReadFinalBeforeAssign.java:5: error: cannot reference this before supertype constructor has been called
|
||||
1 error
|
||||
$ javac broken/ReadFinalBeforeAssign.java (27+35)
|
||||
ReadFinalBeforeAssign.java:5: error: reference to this may only appear after an explicit constructor invocation
|
||||
1 error
|
||||
|
||||
$ javac broken/InnerOuterThis.java (25.0.4.1+1)
|
||||
InnerOuterThis.java:5: error: cannot reference x before supertype constructor has been called
|
||||
1 error
|
||||
$ javac broken/InnerOuterThis.java (27+35)
|
||||
InnerOuterThis.java:5: error: reference to x may only appear after an explicit constructor invocation
|
||||
1 error
|
||||
|
||||
$ javac broken/NewInnerBeforeSuper.java (25.0.4.1+1)
|
||||
NewInnerBeforeSuper.java:5: error: cannot reference this before supertype constructor has been called
|
||||
1 error
|
||||
$ javac broken/NewInnerBeforeSuper.java (27+35)
|
||||
NewInnerBeforeSuper.java:5: error: reference to this may only appear after an explicit constructor invocation
|
||||
1 error
|
||||
|
||||
$ javac broken/AssignFieldWithInitializer.java (25.0.4.1+1)
|
||||
AssignFieldWithInitializer.java:5: error: cannot assign initialized field 'size' before supertype constructor has been called
|
||||
1 error
|
||||
$ javac broken/AssignFieldWithInitializer.java (27+35)
|
||||
AssignFieldWithInitializer.java:5: error: assignment to initialized field 'size' may only appear after an explicit constructor invocation
|
||||
1 error
|
||||
|
||||
$ javac broken/AssignInheritedField.java (25.0.4.1+1)
|
||||
AssignInheritedField.java:4: error: cannot reference shared before supertype constructor has been called
|
||||
1 error
|
||||
$ javac broken/AssignInheritedField.java (27+35)
|
||||
AssignInheritedField.java:4: error: reference to shared may only appear after an explicit constructor invocation
|
||||
1 error
|
||||
|
||||
$ javac broken/ReturnBeforeSuper.java (25.0.4.1+1)
|
||||
ReturnBeforeSuper.java:4: error: 'return' not allowed before explicit constructor invocation
|
||||
1 error
|
||||
$ javac broken/ReturnBeforeSuper.java (27+35)
|
||||
ReturnBeforeSuper.java:4: error: 'return' not allowed before explicit constructor invocation
|
||||
1 error
|
||||
|
||||
$ javac broken/SuperInBranch.java (25.0.4.1+1)
|
||||
SuperInBranch.java:4: error: explicit constructor invocation not allowed here
|
||||
SuperInBranch.java:4: error: explicit constructor invocation not allowed here
|
||||
2 errors
|
||||
$ javac broken/SuperInBranch.java (27+35)
|
||||
SuperInBranch.java:4: error: explicit constructor invocation not allowed here
|
||||
SuperInBranch.java:4: error: explicit constructor invocation not allowed here
|
||||
2 errors
|
||||
|
||||
$ javac broken/TwoSuperCalls.java (25.0.4.1+1)
|
||||
TwoSuperCalls.java:5: error: redundant explicit constructor invocation
|
||||
1 error
|
||||
$ javac broken/TwoSuperCalls.java (27+35)
|
||||
TwoSuperCalls.java:5: error: redundant explicit constructor invocation
|
||||
1 error
|
||||
|
||||
Reference in New Issue
Block a user