changeset 55724:4f8fdcff9d1e amber-demo-II

Automatic merge with records-and-sealed
author mcimadamore
date Fri, 12 Apr 2019 20:50:57 +0200
parents 790e66f7d86b dc731cc17bc8
children 5afdb08e78b8
files src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java
diffstat 2 files changed, 4 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java	Mon Apr 08 13:45:43 2019 +0200
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java	Fri Apr 12 20:50:57 2019 +0200
@@ -3718,7 +3718,7 @@
             if (mods.flags != 0) {
                 log.error(mods.pos, Errors.RecordCantDeclareFieldModifiers);
             }
-            mods.flags |= Flags.RECORD | Flags.FINAL;
+            mods.flags |= Flags.RECORD | Flags.FINAL | Flags.PRIVATE;
             mods.flags |= (recordClassMods.flags & Flags.ABSTRACT) != 0 ? Flags.PROTECTED : 0;
             JCExpression type = parseType();
             int pos = token.pos;
--- a/test/langtools/tools/javac/datum/CheckDatumMembersAccess.java	Mon Apr 08 13:45:43 2019 +0200
+++ b/test/langtools/tools/javac/datum/CheckDatumMembersAccess.java	Fri Apr 12 20:50:57 2019 +0200
@@ -41,7 +41,7 @@
 
 public class CheckDatumMembersAccess {
 
-    record Datum(int AbstractFieldToSearchFor, int newField, int nonFinalField) {}
+    record Datum(int field) {}
 
     public static void main(String args[]) throws Throwable {
         new CheckDatumMembersAccess().run();
@@ -57,9 +57,8 @@
                 CheckDatumMembersAccess.class.getName() + "$Datum.class");
         ClassFile classFile = ClassFile.read(file);
         for (Field f : classFile.fields) {
-            if (f.getName(classFile.constant_pool).equals("AbstractFieldToSearchFor") ||
-                f.getName(classFile.constant_pool).equals("newField")) {
-                Assert.check((f.access_flags.flags & AccessFlags.ACC_FINAL) != 0, "fields of datum should be final");
+            if (f.getName(classFile.constant_pool).equals("field")) {
+                Assert.check((f.access_flags.flags & (AccessFlags.ACC_FINAL | AccessFlags.ACC_PRIVATE)) != 0, "record fields should be final and private");
             }
         }
     }