RFR: 8302344: Compiler Implementation for Unnamed patterns and variables (Preview) [v16]
Aggelos Biboudis
abimpoudis at openjdk.org
Mon May 8 10:17:35 UTC 2023
On Sat, 6 May 2023 21:23:32 GMT, Aggelos Biboudis <abimpoudis at openjdk.org> wrote:
>> This PR implements [JEP 443](https://openjdk.org/jeps/443), the preview feature for Unnamed Patterns and Variables in Java.
>>
>> Draft Spec: https://cr.openjdk.org/~abimpoudis/unnamed/latest/
>
> Aggelos Biboudis has updated the pull request incrementally with one additional commit since the last revision:
>
> Remove @Override from VarSymbol.isUnnamed
BTW we can remove the `isUnnamed` from `VarSymbol` as @jddarcy pointed me out correctly.
By keeping it we avoid sprinkling 5 core places with `@SuppressWarnings("preview")`. However, I think it will be cleaner without that override, despite the annotation and I would be in favor of that. Are there any concerns? e.g.,
diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.java
index 631b0ce61ac..dc84c89f88e 100644
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.java
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.java
@@ -1784,11 +1784,6 @@ public abstract class Symbol extends AnnoConstruct implements PoolConstant, Elem
public <R, P> R accept(Symbol.Visitor<R, P> v, P p) {
return v.visitVarSymbol(this, p);
}
-
- @DefinedBy(Api.LANGUAGE_MODEL)
- public boolean isUnnamed() {
- return name.isEmpty();
- }
}
public static class RecordComponent extends VarSymbol implements RecordComponentElement {
diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java
index 986f2e9fe89..26ef1c41156 100644
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java
@@ -93,6 +93,7 @@ import com.sun.tools.javac.util.JCDiagnostic.DiagnosticFlag;
* This code and its internal interfaces are subject to change or
* deletion without notice.</b>
*/
+ at SuppressWarnings("preview")
public class Attr extends JCTree.Visitor {
protected static final Context.Key<Attr> attrKey = new Context.Key<>();
diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java
index 725a8a5e37d..537635a9490 100644
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java
@@ -93,6 +93,7 @@ import javax.lang.model.util.ElementKindVisitor14;
* This code and its internal interfaces are subject to change or
* deletion without notice.</b>
*/
+ at SuppressWarnings("preview")
public class Check {
protected static final Context.Key<Check> checkKey = new Context.Key<>();
diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Flow.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Flow.java
index 452a823a46e..997ae7e3d81 100644
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Flow.java
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Flow.java
@@ -203,6 +203,7 @@ import static java.util.stream.Collectors.groupingBy;
* This code and its internal interfaces are subject to change or
* deletion without notice.</b>
*/
+ at SuppressWarnings("preview")
public class Flow {
protected static final Context.Key<Flow> flowKey = new Context.Key<>();
diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/MemberEnter.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/MemberEnter.java
index 13a4dd6c2cd..220aaf220d0 100644
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/MemberEnter.java
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/MemberEnter.java
@@ -53,6 +53,7 @@ import static com.sun.tools.javac.code.TypeTag.TYPEVAR;
* This code and its internal interfaces are subject to change or
* deletion without notice.</b>
*/
+ at SuppressWarnings("preview")
public class MemberEnter extends JCTree.Visitor {
protected static final Context.Key<MemberEnter> memberEnterKey = new Context.Key<>();
diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TransPatterns.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TransPatterns.java
index 44ea3f904bd..cdf7d18b599 100644
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TransPatterns.java
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TransPatterns.java
@@ -113,6 +113,7 @@ import com.sun.tools.javac.util.List;
/**
* This pass translates pattern-matching constructs, such as instanceof <pattern>.
*/
+ at SuppressWarnings("preview")
public class TransPatterns extends TreeTranslator {
protected static final Context.Key<TransPatterns> transPatternsKey = new Context.Key<>();
-------------
PR Comment: https://git.openjdk.org/jdk/pull/13528#issuecomment-1538121683
More information about the kulla-dev
mailing list