mirror of
https://github.com/tiennm99/lombok.git
synced 2026-10-15 02:17:12 +00:00
[jdk19] Add support for JCConstantCaseLabel
This commit is contained in:
1 parent
b57de5a558
commit
646723f6d3
2 files changed
+14
No files matched your search
@@ -1448,6 +1448,10 @@ public class PrettyPrinter extends JCTree.Visitor {
|
||||
print(")");
|
||||
}
|
||||
|
||||
void printConstantCaseLabel(JCTree tree) {
|
||||
print((JCTree) readObject(tree, "expr", null));
|
||||
}
|
||||
|
||||
@Override public void visitTry(JCTry tree) {
|
||||
aPrint("try ");
|
||||
List<?> resources = readObject(tree, "resources", List.nil());
|
||||
@@ -1672,6 +1676,8 @@ public class PrettyPrinter extends JCTree.Visitor {
|
||||
printGuardPattern(tree);
|
||||
} else if (className.endsWith("$JCParenthesizedPattern")) { // Introduced in JDK17
|
||||
printParenthesizedPattern(tree);
|
||||
} else if (className.endsWith("$JCConstantCaseLabel")) { // Introduced in JDK19
|
||||
printConstantCaseLabel(tree);
|
||||
} else {
|
||||
throw new AssertionError("Unhandled tree type: " + tree.getClass() + ": " + tree);
|
||||
}
|
||||
|
||||
@@ -610,6 +610,8 @@ public class JavacTreeMaker {
|
||||
List<JCTree> labels;
|
||||
if (pat == null) {
|
||||
labels = tryResolve(DefaultCaseLabel) ? List.of(DefaultCaseLabel()) : List.<JCTree>nil();
|
||||
} else if (tryResolve(ConstantCaseLabel)) {
|
||||
labels = List.<JCTree>of(ConstantCaseLabel(pat));
|
||||
} else {
|
||||
labels = List.<JCTree>of(pat);
|
||||
}
|
||||
@@ -622,6 +624,12 @@ public class JavacTreeMaker {
|
||||
return invoke(DefaultCaseLabel);
|
||||
}
|
||||
|
||||
//javac versions: 19
|
||||
private static final MethodId<JCTree> ConstantCaseLabel = MethodId("ConstantCaseLabel", JCTree.class, JCExpression.class);
|
||||
public JCTree ConstantCaseLabel(JCExpression expr) {
|
||||
return invoke(ConstantCaseLabel, expr);
|
||||
}
|
||||
|
||||
//javac versions: 6-8
|
||||
private static final MethodId<JCSynchronized> Synchronized = MethodId("Synchronized");
|
||||
public JCSynchronized Synchronized(JCExpression lock, JCBlock body) {
|
||||
|
||||
Reference in new issue
Block a user