changeset 56955:379c97f704d8 records-and-sealed

implement ClassTree.getPermitsClause and scanners
author jjg
date Wed, 31 Jul 2019 13:41:41 -0700
parents 51f1edd50183
children 061ac88f1327
files src/jdk.compiler/share/classes/com/sun/source/tree/ClassTree.java src/jdk.compiler/share/classes/com/sun/source/util/TreeScanner.java src/jdk.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeScanner.java
diffstat 4 files changed, 21 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/jdk.compiler/share/classes/com/sun/source/tree/ClassTree.java	Wed Jul 31 13:39:22 2019 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/source/tree/ClassTree.java	Wed Jul 31 13:41:41 2019 -0700
@@ -25,6 +25,7 @@
 
 package com.sun.source.tree;
 
+import java.util.Collections;
 import java.util.List;
 import javax.lang.model.element.Name;
 
@@ -85,6 +86,18 @@
     List<? extends Tree> getImplementsClause();
 
     /**
+     * Returns the subtypes permitted by this type declaration.
+     * @implSpec this implementation returns an empty list
+     * @return the subtypes
+     * @since amber
+     */
+    @Deprecated(forRemoval=true, since="amber")
+    @SuppressWarnings("removal")
+    default List<? extends Tree> getPermitsClause() {
+        return Collections.emptyList();
+    }
+
+    /**
      * Returns the members declared in this type declaration.
      * @return the members
      */
--- a/src/jdk.compiler/share/classes/com/sun/source/util/TreeScanner.java	Wed Jul 31 13:39:22 2019 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/source/util/TreeScanner.java	Wed Jul 31 13:41:41 2019 -0700
@@ -179,12 +179,14 @@
      * @param p  {@inheritDoc}
      * @return the result of scanning
      */
+    @SuppressWarnings("removal")
     @Override
     public R visitClass(ClassTree node, P p) {
         R r = scan(node.getModifiers(), p);
         r = scanAndReduce(node.getTypeParameters(), p, r);
         r = scanAndReduce(node.getExtendsClause(), p, r);
         r = scanAndReduce(node.getImplementsClause(), p, r);
+        r = scanAndReduce(node.getPermitsClause(), p, r);
         r = scanAndReduce(node.getMembers(), p, r);
         return r;
     }
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java	Wed Jul 31 13:39:22 2019 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java	Wed Jul 31 13:41:41 2019 -0700
@@ -813,6 +813,11 @@
         public List<JCExpression> getImplementsClause() {
             return implementing;
         }
+        @SuppressWarnings("removal")
+        @DefinedBy(Api.COMPILER_TREE)
+        public List<JCExpression> getPermitsClause() {
+            return permitting;
+        }
         @DefinedBy(Api.COMPILER_TREE)
         public List<JCTree> getMembers() {
             return defs;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeScanner.java	Wed Jul 31 13:39:22 2019 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeScanner.java	Wed Jul 31 13:41:41 2019 -0700
@@ -115,6 +115,7 @@
         scan(tree.typarams);
         scan(tree.extending);
         scan(tree.implementing);
+        scan(tree.permitting);
         scan(tree.defs);
     }