| commit | f695cf5cf34a7d1811f5a1dc77ab7c74bf2c0b47 | [log] [tgz] |
|---|---|---|
| author | Roger Howell <howelrtc@aston.ac.uk> | Wed Jan 06 17:27:52 2021 +0000 |
| committer | Roger Howell <howelrtc@aston.ac.uk> | Wed Jan 06 17:27:52 2021 +0000 |
| tree | 299fee905931f6366bb27e5bec7ed6b78cd86275 | |
| parent | a73aba7b8cef7c52666d25169a3f6e495c65bcd2 [diff] |
records are implicitly final
diff --git a/javaparser-core-testing/src/test/java/com/github/javaparser/ast/body/RecordDeclarationTest.java b/javaparser-core-testing/src/test/java/com/github/javaparser/ast/body/RecordDeclarationTest.java index 34a2269..a8393e8 100644 --- a/javaparser-core-testing/src/test/java/com/github/javaparser/ast/body/RecordDeclarationTest.java +++ b/javaparser-core-testing/src/test/java/com/github/javaparser/ast/body/RecordDeclarationTest.java
@@ -235,6 +235,19 @@ assertOneRecordDeclaration(cu); } + /** + * https://openjdk.java.net/jeps/395#Restrictions-on-records + */ + @Test + void record_isImplicitlyFinal() { + String s = "record Point(int x, int y) { static int z; }"; + CompilationUnit cu = parseCompilationUnit(s); + assertOneRecordDeclaration(cu); + + RecordDeclaration record = cu.findFirst(RecordDeclaration.class).get(); + assertTrue(record.isFinal(), "Records are implicitly final."); + } + @Test void record_mustNotAllowMismatchedComponentAccessorReturnType() {
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/RecordDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/RecordDeclaration.java index 78600a3..0c88ea5 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/RecordDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/RecordDeclaration.java
@@ -296,4 +296,15 @@ public RecordDeclaration removeReceiverParameter() { return setReceiverParameter((ReceiverParameter) null); } + + + /** + * https://openjdk.java.net/jeps/395#Restrictions-on-records + * + * @return always true -- Records are implicitly final, therefore can never not be final. + */ + @Override + public boolean isFinal() { + return true; + } }