From 5c7f529956b1a41ee64f53f02626f90d6987669c Mon Sep 17 00:00:00 2001 From: Joe Darcy Date: Mon, 18 Sep 2023 12:33:42 -0700 Subject: [PATCH 1/2] JDK-8246280: Refine API to model sealed classes and interfaces in javax.lang.model --- .../share/classes/javax/lang/model/element/TypeElement.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/java.compiler/share/classes/javax/lang/model/element/TypeElement.java b/src/java.compiler/share/classes/javax/lang/model/element/TypeElement.java index b99903a03fe4d..b3a00e92ad16c 100644 --- a/src/java.compiler/share/classes/javax/lang/model/element/TypeElement.java +++ b/src/java.compiler/share/classes/javax/lang/model/element/TypeElement.java @@ -255,6 +255,8 @@ default List getRecordComponents() { /** * Returns the permitted classes of this class or interface * element in declaration order. + * Note that for an interface, permitted subclasses and + * subinterfaces can be returned. * * @implSpec The default implementations of this method returns an * empty and unmodifiable list. @@ -262,6 +264,8 @@ default List getRecordComponents() { * @return the permitted classes, or an empty list if there are none * * @since 17 + * @jls 8.1.6 Permitted Direct Subclasses + * @jls 9.1.4 Permitted Direct Subclasses and Subinterfaces */ default List getPermittedSubclasses() { return List.of(); From 1074ed35c5f6474e147621d8ebad11f2300c341d Mon Sep 17 00:00:00 2001 From: Joe Darcy Date: Mon, 18 Sep 2023 12:57:45 -0700 Subject: [PATCH 2/2] Appease jcheck. --- .../share/classes/javax/lang/model/element/TypeElement.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/java.compiler/share/classes/javax/lang/model/element/TypeElement.java b/src/java.compiler/share/classes/javax/lang/model/element/TypeElement.java index b3a00e92ad16c..d430e33e59139 100644 --- a/src/java.compiler/share/classes/javax/lang/model/element/TypeElement.java +++ b/src/java.compiler/share/classes/javax/lang/model/element/TypeElement.java @@ -265,7 +265,7 @@ default List getRecordComponents() { * * @since 17 * @jls 8.1.6 Permitted Direct Subclasses - * @jls 9.1.4 Permitted Direct Subclasses and Subinterfaces + * @jls 9.1.4 Permitted Direct Subclasses and Subinterfaces */ default List getPermittedSubclasses() { return List.of();