This is an automated email from the ASF dual-hosted git repository.
dbalek pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push:
new e660cc7c53 Update nb-javac to 19+33. (#4467)
e660cc7c53 is described below
commit e660cc7c53e060c4186b7ceac02b1947689cc0ca
Author: Dusan Balek <[email protected]>
AuthorDate: Tue Sep 13 09:35:45 2022 +0200
Update nb-javac to 19+33. (#4467)
---
.github/workflows/main.yml | 2 +-
.../org-netbeans-modules-debugger-jpda.sig | 2 -
java/debugger.jpda/nbproject/project.properties | 2 +-
.../completion/data/SwitchPatternMatching.java | 4 +-
.../JavaCompletionTask117FeaturesTest.java | 10 +-
.../editor/java/JavaCodeTemplateFilter.java | 19 +++-
.../modules/java/hints/bugs/InfiniteRecursion.java | 6 ++
.../hints/suggestions/ExpectedTypeResolver.java | 17 ++-
.../hints/jdk/ConvertSwitchToRuleSwitchTest.java | 12 +--
.../org-netbeans-modules-java-source-base.sig | 2 -
java/java.source.base/nbproject/project.properties | 2 +-
.../api/java/source/TranslateIdentifier.java | 3 +-
.../org/netbeans/api/java/source/TreeMaker.java | 19 +++-
.../modules/java/source/NoJavacHelper.java | 2 +-
.../modules/java/source/builder/TreeFactory.java | 24 +++--
.../modules/java/source/pretty/VeryPretty.java | 16 ++-
.../modules/java/source/save/CasualDiff.java | 50 ++++-----
.../modules/java/source/save/Reformatter.java | 69 ++++++++-----
.../modules/java/source/save/Reindenter.java | 8 +-
.../source/transform/ImmutableTreeTranslator.java | 114 +++++++++++++++++++--
.../java/source/transform/TreeDuplicator.java | 30 +++++-
.../java/source/gen/SwitchRuleFormattingTest.java | 62 ++++++-----
.../netbeans/api/java/source/gen/SwitchTest.java | 2 +-
.../modules/java/source/save/FormatingTest.java | 99 +++++-------------
.../nbproject/org-netbeans-modules-java-source.sig | 2 -
java/java.source/nbproject/project.properties | 2 +-
java/libs.javacapi/external/binaries-list | 4 +-
...-license.txt => nb-javac-jdk-19+33-license.txt} | 8 +-
.../nbproject/org-netbeans-libs-javacapi.sig | 63 ++++++++----
java/libs.javacapi/nbproject/project.properties | 2 +-
java/libs.javacapi/nbproject/project.xml | 4 +-
java/libs.nbjavacapi/external/binaries-list | 4 +-
...-license.txt => nb-javac-jdk-19+33-license.txt} | 8 +-
java/libs.nbjavacapi/manifest.mf | 2 +-
java/libs.nbjavacapi/nbproject/project.properties | 4 +-
java/libs.nbjavacapi/nbproject/project.xml | 8 +-
.../netbeans/modules/nbjavac/api/Bundle.properties | 2 +-
.../org-netbeans-modules-refactoring-java.sig | 2 -
java/refactoring.java/nbproject/project.properties | 2 +-
.../modules/java/hints/spiimpl/Utilities.java | 5 +-
.../org/netbeans/nbbuild/extlibs/ignored-overlaps | 4 +-
41 files changed, 427 insertions(+), 275 deletions(-)
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index b5899ef0b0..02e2ae8fe6 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -103,7 +103,7 @@ jobs:
run: tar --zstd -xf build.tar.zst
- name: Setup Xvfb
- if: ${{ matrix.java != '19-ea' }} # see #4299
+ if: ${{ matrix.java != '20-ea' }} # see #4299
run: |
echo "DISPLAY=:99.0" >> $GITHUB_ENV
Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
diff --git
a/java/debugger.jpda/nbproject/org-netbeans-modules-debugger-jpda.sig
b/java/debugger.jpda/nbproject/org-netbeans-modules-debugger-jpda.sig
index 5a10587d15..fb6f2e796e 100644
--- a/java/debugger.jpda/nbproject/org-netbeans-modules-debugger-jpda.sig
+++ b/java/debugger.jpda/nbproject/org-netbeans-modules-debugger-jpda.sig
@@ -27,7 +27,6 @@ meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitErroneous(com.sun.
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitExports(com.sun.source.tree.ExportsTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitExpressionStatement(com.sun.source.tree.ExpressionStatementTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitForLoop(com.sun.source.tree.ForLoopTree,{com.sun.source.tree.TreeVisitor%1})
-meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitGuardedPattern(com.sun.source.tree.GuardedPatternTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitIdentifier(com.sun.source.tree.IdentifierTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitIf(com.sun.source.tree.IfTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitImport(com.sun.source.tree.ImportTree,{com.sun.source.tree.TreeVisitor%1})
@@ -108,7 +107,6 @@ meth public {com.sun.source.util.TreeScanner%0}
visitErroneous(com.sun.source.tr
meth public {com.sun.source.util.TreeScanner%0}
visitExports(com.sun.source.tree.ExportsTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitExpressionStatement(com.sun.source.tree.ExpressionStatementTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitForLoop(com.sun.source.tree.ForLoopTree,{com.sun.source.util.TreeScanner%1})
-meth public {com.sun.source.util.TreeScanner%0}
visitGuardedPattern(com.sun.source.tree.GuardedPatternTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitIdentifier(com.sun.source.tree.IdentifierTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitIf(com.sun.source.tree.IfTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitImport(com.sun.source.tree.ImportTree,{com.sun.source.util.TreeScanner%1})
diff --git a/java/debugger.jpda/nbproject/project.properties
b/java/debugger.jpda/nbproject/project.properties
index d72f13597f..a8853bf918 100644
--- a/java/debugger.jpda/nbproject/project.properties
+++ b/java/debugger.jpda/nbproject/project.properties
@@ -23,7 +23,7 @@ javac.source=1.8
javadoc.arch=${basedir}/arch.xml
jpda.classes.dir=${build.dir}/jpda/classes/
requires.nb.javac=true
-spec.version.base=1.126.0
+spec.version.base=1.127.0
test-unit-sys-prop.test.dir.src=${basedir}/test/unit/src/
test-unit-sys-prop.netbeans.user=${basedir}/work/nb_user_dir
test.unit.cp.extra=../java.source.nbjavac/build/test-nb-javac/cluster/modules/org-netbeans-modules-java-source-nbjavac-test.jar
diff --git
a/java/java.completion/test/unit/data/org/netbeans/modules/java/completion/data/SwitchPatternMatching.java
b/java/java.completion/test/unit/data/org/netbeans/modules/java/completion/data/SwitchPatternMatching.java
index 82cc419ea9..97036989db 100644
---
a/java/java.completion/test/unit/data/org/netbeans/modules/java/completion/data/SwitchPatternMatching.java
+++
b/java/java.completion/test/unit/data/org/netbeans/modules/java/completion/data/SwitchPatternMatching.java
@@ -28,9 +28,9 @@ public class Test{
String result = switch (obj) {
case null, String ->
"null & String";
- case CharSequence s && s. && obj. && IntStream.of(1).max().->
+ case CharSequence s when s. && obj. && IntStream.of(1).max().->
"CharSequence";
- case (java.util.List list && list. && new StringBuilder().ERROR.
&& java.util.ArrayList<String>.)->"list";
+ case (java.util.List list when list. && new StringBuilder().ERROR.
&& java.util.ArrayList<String>.)->"list";
default ->
"default";
};
diff --git
a/java/java.completion/test/unit/src/org/netbeans/modules/java/completion/JavaCompletionTask117FeaturesTest.java
b/java/java.completion/test/unit/src/org/netbeans/modules/java/completion/JavaCompletionTask117FeaturesTest.java
index 4318fb37e1..a9e798129e 100644
---
a/java/java.completion/test/unit/src/org/netbeans/modules/java/completion/JavaCompletionTask117FeaturesTest.java
+++
b/java/java.completion/test/unit/src/org/netbeans/modules/java/completion/JavaCompletionTask117FeaturesTest.java
@@ -58,24 +58,24 @@ public class JavaCompletionTask117FeaturesTest extends
CompletionTestBase {
public void testClassMembersAutoCompletion_GuardedPattern() throws
Exception {
TestCompilerOptionsQueryImplementation.EXTRA_OPTIONS.add("--enable-preview");
- performTest("SwitchPatternMatching", 1085, null,
"AutoCompletion_MembersSelect_GuardedPatternMatchingSwitch.pass",
getLatestSource());
+ performTest("SwitchPatternMatching", 1087, null,
"AutoCompletion_MembersSelect_GuardedPatternMatchingSwitch.pass",
getLatestSource());
}
public void testClassMembersAutoCompletion_GuardedPattern_1() throws
Exception {
TestCompilerOptionsQueryImplementation.EXTRA_OPTIONS.add("--enable-preview");
- performTest("SwitchPatternMatching", 1093, null,
"AutoCompletion_MembersSelect_GuardedPatternMatchingSwitch_1.pass",
getLatestSource());
+ performTest("SwitchPatternMatching", 1095, null,
"AutoCompletion_MembersSelect_GuardedPatternMatchingSwitch_1.pass",
getLatestSource());
}
public void testClassMembersAutoCompletion_GuardedPattern_2() throws
Exception {
TestCompilerOptionsQueryImplementation.EXTRA_OPTIONS.add("--enable-preview");
- performTest("SwitchPatternMatching", 1113, null,
"AutoCompletion_MembersSelect_GuardedPatternMatchingSwitch_2.pass",
getLatestSource());
+ performTest("SwitchPatternMatching", 1115, null,
"AutoCompletion_MembersSelect_GuardedPatternMatchingSwitch_2.pass",
getLatestSource());
}
public void testClassMembersAutoCompletion_ParanthesizedPattern() throws
Exception {
TestCompilerOptionsQueryImplementation.EXTRA_OPTIONS.add("--enable-preview");
- performTest("SwitchPatternMatching", 1200, null,
"AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch.pass",
getLatestSource());
+ performTest("SwitchPatternMatching", 1204, null,
"AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch.pass",
getLatestSource());
}
public void testClassMembersAutoCompletion_ParanthesizedPattern_1() throws
Exception {
TestCompilerOptionsQueryImplementation.EXTRA_OPTIONS.add("--enable-preview");
- performTest("SwitchPatternMatching", 1224, null,
"AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch_1.pass",
getLatestSource());
+ performTest("SwitchPatternMatching", 1228, null,
"AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch_1.pass",
getLatestSource());
}
public void noop() {
}
diff --git
a/java/java.editor/src/org/netbeans/modules/editor/java/JavaCodeTemplateFilter.java
b/java/java.editor/src/org/netbeans/modules/editor/java/JavaCodeTemplateFilter.java
index c93e2b36a6..85a6555d03 100644
---
a/java/java.editor/src/org/netbeans/modules/editor/java/JavaCodeTemplateFilter.java
+++
b/java/java.editor/src/org/netbeans/modules/editor/java/JavaCodeTemplateFilter.java
@@ -19,6 +19,7 @@
package org.netbeans.modules.editor.java;
+import com.sun.source.tree.CaseLabelTree;
import com.sun.source.tree.Tree;
import java.util.ArrayList;
import java.util.Collections;
@@ -112,12 +113,23 @@ public class JavaCodeTemplateFilter implements
CodeTemplateFilter {
}
treeKindCtx = tree.getKind();
switch (treeKindCtx) {
- case CASE:
- if (so <
controller.getTrees().getSourcePositions().getEndPosition(controller.getCompilationUnit(),
((CaseTree)tree).getExpression())) {
+ case CASE: {
+ if (((CaseTree)tree).getCaseKind()
== CaseTree.CaseKind.RULE) {
treeKindCtx = null;
+ } else {
+ SourcePositions sp =
controller.getTrees().getSourcePositions();
+ List<? extends CaseLabelTree>
labels = ((CaseTree)tree).getLabels();
+ int startPos =
labels.isEmpty() ? (int) sp.getEndPosition(controller.getCompilationUnit(),
labels.get(labels.size() - 1))
+ :
(int)sp.getStartPosition(controller.getCompilationUnit(), tree);
+ String headerText =
controller.getText().substring(startPos, so);
+ int idx =
headerText.indexOf(':');
+ if (idx < 0) {
+ treeKindCtx = null;
+ }
}
break;
- case CLASS:
+ }
+ case CLASS: {
SourcePositions sp =
controller.getTrees().getSourcePositions();
int startPos =
(int)sp.getEndPosition(controller.getCompilationUnit(),
((ClassTree)tree).getModifiers());
if (startPos <= 0) {
@@ -130,6 +142,7 @@ public class JavaCodeTemplateFilter implements
CodeTemplateFilter {
stringCtx = CLASS_HEADER;
}
break;
+ }
case FOR_LOOP:
case ENHANCED_FOR_LOOP:
if
(!isRightParenthesisOfLoopPresent(controller, so)) {
diff --git
a/java/java.hints/src/org/netbeans/modules/java/hints/bugs/InfiniteRecursion.java
b/java/java.hints/src/org/netbeans/modules/java/hints/bugs/InfiniteRecursion.java
index 77d2641fdf..47ab70f328 100644
---
a/java/java.hints/src/org/netbeans/modules/java/hints/bugs/InfiniteRecursion.java
+++
b/java/java.hints/src/org/netbeans/modules/java/hints/bugs/InfiniteRecursion.java
@@ -23,6 +23,7 @@ import com.sun.source.tree.BreakTree;
import com.sun.source.tree.CaseTree;
import com.sun.source.tree.ClassTree;
import com.sun.source.tree.ConditionalExpressionTree;
+import com.sun.source.tree.ConstantCaseLabelTree;
import com.sun.source.tree.ContinueTree;
import com.sun.source.tree.DoWhileLoopTree;
import com.sun.source.tree.EnhancedForLoopTree;
@@ -550,6 +551,11 @@ public class InfiniteRecursion {
}
}
+ @Override
+ public State visitConstantCaseLabel(ConstantCaseLabelTree node, Void
p) {
+ return super.scan(node.getConstantExpression(), p);
+ }
+
@Override
public State visitEnhancedForLoop(EnhancedForLoopTree node, Void p) {
State s;
diff --git
a/java/java.hints/src/org/netbeans/modules/java/hints/suggestions/ExpectedTypeResolver.java
b/java/java.hints/src/org/netbeans/modules/java/hints/suggestions/ExpectedTypeResolver.java
index e87f86e92f..56fd371c97 100644
---
a/java/java.hints/src/org/netbeans/modules/java/hints/suggestions/ExpectedTypeResolver.java
+++
b/java/java.hints/src/org/netbeans/modules/java/hints/suggestions/ExpectedTypeResolver.java
@@ -34,7 +34,9 @@ import com.sun.source.tree.ClassTree;
import com.sun.source.tree.CompilationUnitTree;
import com.sun.source.tree.CompoundAssignmentTree;
import com.sun.source.tree.ConditionalExpressionTree;
+import com.sun.source.tree.ConstantCaseLabelTree;
import com.sun.source.tree.ContinueTree;
+import com.sun.source.tree.DeconstructionPatternTree;
import com.sun.source.tree.DefaultCaseLabelTree;
import com.sun.source.tree.DoWhileLoopTree;
import com.sun.source.tree.EmptyStatementTree;
@@ -44,7 +46,6 @@ import com.sun.source.tree.ExportsTree;
import com.sun.source.tree.ExpressionStatementTree;
import com.sun.source.tree.ExpressionTree;
import com.sun.source.tree.ForLoopTree;
-import com.sun.source.tree.GuardedPatternTree;
import com.sun.source.tree.IdentifierTree;
import com.sun.source.tree.IfTree;
import com.sun.source.tree.ImportTree;
@@ -66,6 +67,7 @@ import com.sun.source.tree.PackageTree;
import com.sun.source.tree.ParameterizedTypeTree;
import com.sun.source.tree.ParenthesizedPatternTree;
import com.sun.source.tree.ParenthesizedTree;
+import com.sun.source.tree.PatternCaseLabelTree;
import com.sun.source.tree.PrimitiveTypeTree;
import com.sun.source.tree.ProvidesTree;
import com.sun.source.tree.RequiresTree;
@@ -110,7 +112,6 @@ import javax.lang.model.type.ExecutableType;
import javax.lang.model.type.PrimitiveType;
import javax.lang.model.type.TypeKind;
import javax.lang.model.type.TypeMirror;
-import javax.lang.model.type.TypeVariable;
import javax.lang.model.type.UnionType;
import javax.lang.model.type.WildcardType;
import javax.lang.model.util.ElementFilter;
@@ -1416,7 +1417,17 @@ public class ExpectedTypeResolver implements
TreeVisitor<List<? extends TypeMirr
}
@Override
- public List<? extends TypeMirror> visitGuardedPattern(GuardedPatternTree
node, Object p) {
+ public List<? extends TypeMirror>
visitConstantCaseLabel(ConstantCaseLabelTree node, Object p) {
+ return null;
+ }
+
+ @Override
+ public List<? extends TypeMirror>
visitPatternCaseLabel(PatternCaseLabelTree node, Object p) {
+ return null;
+ }
+
+ @Override
+ public List<? extends TypeMirror>
visitDeconstructionPattern(DeconstructionPatternTree node, Object p) {
return null;
}
diff --git
a/java/java.hints/test/unit/src/org/netbeans/modules/java/hints/jdk/ConvertSwitchToRuleSwitchTest.java
b/java/java.hints/test/unit/src/org/netbeans/modules/java/hints/jdk/ConvertSwitchToRuleSwitchTest.java
index b87dc9f25e..61ff1660a7 100644
---
a/java/java.hints/test/unit/src/org/netbeans/modules/java/hints/jdk/ConvertSwitchToRuleSwitchTest.java
+++
b/java/java.hints/test/unit/src/org/netbeans/modules/java/hints/jdk/ConvertSwitchToRuleSwitchTest.java
@@ -987,10 +987,10 @@ public class ConvertSwitchToRuleSwitchTest extends
NbTestCase {
HintTest.create()
.input("package test;" +
"public class Test {\n" +
- " private void test(int p) {\n" +
+ " private void test(Object p) {\n" +
" String result;\n" +
" switch (p) {\n" +
- " case Integer i && (i > 10): result =
\"a\"; break;\n" +
+ " case Integer i when (i > 10): result =
\"a\"; break;\n" +
" default: System.err.println(\"No.\");
break;\n" +
" }\n" +
" }\n" +
@@ -1003,10 +1003,10 @@ public class ConvertSwitchToRuleSwitchTest extends
NbTestCase {
.assertCompilable()
.assertVerbatimOutput("package test;" +
"public class Test {\n" +
- " private void test(int p) {\n" +
+ " private void test(Object p) {\n" +
" String result;\n" +
" switch (p) {\n" +
- " case Integer i && (i > 10) -> result =
\"a\";\n" +
+ " case Integer i when (i > 10) -> result =
\"a\";\n" +
" default ->
System.err.println(\"No.\");\n" +
" }\n" +
" }\n" +
@@ -1025,7 +1025,7 @@ public class ConvertSwitchToRuleSwitchTest extends
NbTestCase {
+ "class Test {\n"
+ " public String test(Object p, Object o1, Object
o2) {\n"
+ " switch (p) {\n"
- + " case (Integer i && (i > 10)):\n"
+ + " case (Integer i) when (i > 10):\n"
+ " return (String) o1;\n"
+ " default :\n"
+ " return (String) o2;\n"
@@ -1042,7 +1042,7 @@ public class ConvertSwitchToRuleSwitchTest extends
NbTestCase {
+ "class Test {\n"
+ " public String test(Object p, Object o1,
Object o2) {\n"
+ " return (String) (switch (p) {\n"
- + " case (Integer i && (i > 10)) ->
o1;\n"
+ + " case (Integer i) when (i > 10) ->
o1;\n"
+ " default -> o2;\n"
+ " });\n"
+ " }\n"
diff --git
a/java/java.source.base/nbproject/org-netbeans-modules-java-source-base.sig
b/java/java.source.base/nbproject/org-netbeans-modules-java-source-base.sig
index cc7a583a79..335dc64c0b 100644
--- a/java/java.source.base/nbproject/org-netbeans-modules-java-source-base.sig
+++ b/java/java.source.base/nbproject/org-netbeans-modules-java-source-base.sig
@@ -27,7 +27,6 @@ meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitErroneous(com.sun.
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitExports(com.sun.source.tree.ExportsTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitExpressionStatement(com.sun.source.tree.ExpressionStatementTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitForLoop(com.sun.source.tree.ForLoopTree,{com.sun.source.tree.TreeVisitor%1})
-meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitGuardedPattern(com.sun.source.tree.GuardedPatternTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitIdentifier(com.sun.source.tree.IdentifierTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitIf(com.sun.source.tree.IfTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitImport(com.sun.source.tree.ImportTree,{com.sun.source.tree.TreeVisitor%1})
@@ -108,7 +107,6 @@ meth public {com.sun.source.util.TreeScanner%0}
visitErroneous(com.sun.source.tr
meth public {com.sun.source.util.TreeScanner%0}
visitExports(com.sun.source.tree.ExportsTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitExpressionStatement(com.sun.source.tree.ExpressionStatementTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitForLoop(com.sun.source.tree.ForLoopTree,{com.sun.source.util.TreeScanner%1})
-meth public {com.sun.source.util.TreeScanner%0}
visitGuardedPattern(com.sun.source.tree.GuardedPatternTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitIdentifier(com.sun.source.tree.IdentifierTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitIf(com.sun.source.tree.IfTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitImport(com.sun.source.tree.ImportTree,{com.sun.source.util.TreeScanner%1})
diff --git a/java/java.source.base/nbproject/project.properties
b/java/java.source.base/nbproject/project.properties
index bb2801cc93..9d0e680d7a 100644
--- a/java/java.source.base/nbproject/project.properties
+++ b/java/java.source.base/nbproject/project.properties
@@ -23,7 +23,7 @@ javadoc.name=Java Source Base
javadoc.title=Java Source Base
javadoc.arch=${basedir}/arch.xml
javadoc.apichanges=${basedir}/apichanges.xml
-spec.version.base=2.58.0
+spec.version.base=2.59.0
test.qa-functional.cp.extra=${refactoring.java.dir}/modules/ext/nb-javac-api.jar
test.unit.run.cp.extra=${o.n.core.dir}/core/core.jar:\
${o.n.core.dir}/lib/boot.jar:\
diff --git
a/java/java.source.base/src/org/netbeans/api/java/source/TranslateIdentifier.java
b/java/java.source.base/src/org/netbeans/api/java/source/TranslateIdentifier.java
index c9247e3121..c1f498e69c 100644
---
a/java/java.source.base/src/org/netbeans/api/java/source/TranslateIdentifier.java
+++
b/java/java.source.base/src/org/netbeans/api/java/source/TranslateIdentifier.java
@@ -21,6 +21,7 @@ package org.netbeans.api.java.source;
import com.sun.source.tree.CaseTree;
import com.sun.source.tree.CompilationUnitTree;
+import com.sun.source.tree.ConstantCaseLabelTree;
import com.sun.source.tree.IdentifierTree;
import com.sun.source.tree.MemberSelectTree;
import com.sun.source.tree.MethodTree;
@@ -79,7 +80,7 @@ class TranslateIdentifier extends
ErrorAwareTreePathScanner<Void, Void>{
|| (element.getKind().isField() && ((Symbol)
element).isStatic())) {
Tree parent = path.getParentPath() != null ?
path.getParentPath().getLeaf() : null;
- if ( (parent != null && parent.getKind() == Kind.CASE &&
((CaseTree) parent).getExpression() == node && element.getKind() ==
ElementKind.ENUM_CONSTANT)
+ if ( (parent != null && parent.getKind() ==
Kind.CONSTANT_CASE_LABEL && ((ConstantCaseLabelTree)
parent).getConstantExpression() == node && element.getKind() ==
ElementKind.ENUM_CONSTANT)
|| (path.getCompilationUnit() != null && ((Symbol)
element).enclClass() != null && path.getCompilationUnit().getSourceFile() ==
((Symbol) element).enclClass().sourcefile)) {
translateMap.put(node,
make.Identifier(element.getSimpleName()));
} else {
diff --git
a/java/java.source.base/src/org/netbeans/api/java/source/TreeMaker.java
b/java/java.source.base/src/org/netbeans/api/java/source/TreeMaker.java
index b7667a4536..cb830c6249 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/TreeMaker.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/TreeMaker.java
@@ -276,7 +276,7 @@ public final class TreeMaker {
* @since 2.39
*/
public CaseTree CasePatterns(List<? extends Tree> patterns, Tree body) {
- return delegate.CaseMultiplePatterns(patterns.stream().map(p ->
(CaseLabelTree) p).collect(Collectors.toList()), body);
+ return delegate.CaseMultiplePatterns(toCaseLabelTrees(patterns), body);
}
/**
@@ -288,7 +288,22 @@ public final class TreeMaker {
* @since 2.39
*/
public CaseTree CasePatterns(List<? extends Tree> patterns, List<? extends
StatementTree> statements) {
- return delegate.CaseMultiplePatterns(patterns.stream().map(p ->
(CaseLabelTree) p).collect(Collectors.toList()), statements);
+ return delegate.CaseMultiplePatterns(toCaseLabelTrees(patterns),
statements);
+ }
+
+ private List<? extends CaseLabelTree> toCaseLabelTrees(List<? extends
Tree> patterns) {
+ return patterns.stream().map(p -> {
+ if (p instanceof CaseLabelTree) {
+ return (CaseLabelTree) p;
+ }
+ if (p instanceof ExpressionTree) {
+ return delegate.ConstantCaseLabel((ExpressionTree) p);
+ }
+ if (p instanceof PatternTree) {
+ return delegate.PatternCaseLabel((PatternTree) p, null);
+ }
+ throw new IllegalArgumentException("Invalid pattern kind: " +
p.getKind()); //NOI18N
+ }).collect(Collectors.toList());
}
/**
diff --git
a/java/java.source.base/src/org/netbeans/modules/java/source/NoJavacHelper.java
b/java/java.source.base/src/org/netbeans/modules/java/source/NoJavacHelper.java
index 2085580a85..727e20cda7 100644
---
a/java/java.source.base/src/org/netbeans/modules/java/source/NoJavacHelper.java
+++
b/java/java.source.base/src/org/netbeans/modules/java/source/NoJavacHelper.java
@@ -34,7 +34,7 @@ import org.openide.modules.OnStart;
*/
public class NoJavacHelper {
- public static final int REQUIRED_JAVAC_VERSION = 18; // <- TODO: increment
on every release
+ public static final int REQUIRED_JAVAC_VERSION = 19; // <- TODO: increment
on every release
private static final boolean HAS_WORKING_JAVAC;
static {
diff --git
a/java/java.source.base/src/org/netbeans/modules/java/source/builder/TreeFactory.java
b/java/java.source.base/src/org/netbeans/modules/java/source/builder/TreeFactory.java
index 568e8952f5..102544cba7 100644
---
a/java/java.source.base/src/org/netbeans/modules/java/source/builder/TreeFactory.java
+++
b/java/java.source.base/src/org/netbeans/modules/java/source/builder/TreeFactory.java
@@ -77,6 +77,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;
+import java.util.stream.Collectors;
import javax.lang.model.element.*;
import javax.lang.model.type.ArrayType;
import javax.lang.model.type.TypeKind;
@@ -210,16 +211,31 @@ public class TreeFactory {
return make.at(NOPOS).DefaultCaseLabel();
}
+ public ConstantCaseLabelTree ConstantCaseLabel(ExpressionTree expr) {
+ return make.at(NOPOS).ConstantCaseLabel((JCExpression) expr);
+ }
+
+ public PatternCaseLabelTree PatternCaseLabel(PatternTree pat,
ExpressionTree guard) {
+ return make.at(NOPOS).PatternCaseLabel((JCPattern) pat, (JCExpression)
guard);
+ }
+
+ public DeconstructionPatternTree DeconstructionPattern(ExpressionTree
deconstructor, List<? extends PatternTree> nested, VariableTree var) {
+ ListBuffer<JCPattern> pats = new ListBuffer<>();
+ for (PatternTree t : nested)
+ pats.append((JCPattern)t);
+ return make.at(NOPOS).RecordPattern((JCExpression) deconstructor,
pats.toList(), (JCVariableDecl) var);
+ }
+
public CaseTree Case(ExpressionTree expression, List<? extends
StatementTree> statements) {
return Case(expression != null ? Collections.singletonList(expression)
: Collections.emptyList(), statements);
}
public CaseTree Case(List<? extends ExpressionTree> expressions, List<?
extends StatementTree> statements) {
- return CaseMultiplePatterns(expressions.isEmpty() ?
Collections.singletonList(DefaultCaseLabel()) : expressions, statements);
+ return CaseMultiplePatterns(expressions.isEmpty() ?
Collections.singletonList(DefaultCaseLabel()) : expressions.stream().map(e ->
ConstantCaseLabel(e)).collect(Collectors.toList()), statements);
}
public CaseTree Case(List<? extends ExpressionTree> expressions, Tree
body) {
- return CaseMultiplePatterns(expressions.isEmpty() ?
Collections.singletonList(DefaultCaseLabel()) : expressions, body);
+ return CaseMultiplePatterns(expressions.isEmpty() ?
Collections.singletonList(DefaultCaseLabel()) : expressions.stream().map(e ->
ConstantCaseLabel(e)).collect(Collectors.toList()), body);
}
public CaseTree CaseMultiplePatterns(List<? extends CaseLabelTree>
expressions, Tree body) {
@@ -906,10 +922,6 @@ public class TreeFactory {
return make.at(NOPOS).BindingPattern((JCVariableDecl) vt);
}
- public GuardedPatternTree GuardedPattern(PatternTree pattern,
ExpressionTree guard) {
- return make.at(NOPOS).GuardPattern((JCPattern) pattern, (JCExpression)
guard);
- }
-
public ParenthesizedPatternTree ParenthesizedPattern(PatternTree pattern) {
return make.at(NOPOS).ParenthesizedPattern((JCPattern) pattern);
}
diff --git
a/java/java.source.base/src/org/netbeans/modules/java/source/pretty/VeryPretty.java
b/java/java.source.base/src/org/netbeans/modules/java/source/pretty/VeryPretty.java
index 8c8867f38e..5a76b60586 100644
---
a/java/java.source.base/src/org/netbeans/modules/java/source/pretty/VeryPretty.java
+++
b/java/java.source.base/src/org/netbeans/modules/java/source/pretty/VeryPretty.java
@@ -2061,10 +2061,24 @@ public final class VeryPretty extends JCTree.Visitor
implements DocTreeVisitor<V
}
@Override
- public void visitDefaultCaseLabel(JCDefaultCaseLabel that) {
+ public void visitDefaultCaseLabel(JCDefaultCaseLabel tree) {
print("default");
}
+ @Override
+ public void visitConstantCaseLabel(JCConstantCaseLabel tree) {
+ printExpr(tree.expr);
+ }
+
+ @Override
+ public void visitPatternCaseLabel(JCPatternCaseLabel tree) {
+ print(tree.pat);
+ if (tree.guard != null) {
+ print(" when ");
+ printExpr(tree.guard);
+ }
+ }
+
@Override
public void visitLetExpr(LetExpr tree) {
print("(let " + tree.defs + " in " + tree.expr + ")");
diff --git
a/java/java.source.base/src/org/netbeans/modules/java/source/save/CasualDiff.java
b/java/java.source.base/src/org/netbeans/modules/java/source/save/CasualDiff.java
index 3441ee964c..3bc2d5dd28 100644
---
a/java/java.source.base/src/org/netbeans/modules/java/source/save/CasualDiff.java
+++
b/java/java.source.base/src/org/netbeans/modules/java/source/save/CasualDiff.java
@@ -76,6 +76,7 @@ import com.sun.tools.javac.tree.JCTree.JCCatch;
import com.sun.tools.javac.tree.JCTree.JCClassDecl;
import com.sun.tools.javac.tree.JCTree.JCCompilationUnit;
import com.sun.tools.javac.tree.JCTree.JCConditional;
+import com.sun.tools.javac.tree.JCTree.JCConstantCaseLabel;
import com.sun.tools.javac.tree.JCTree.JCContinue;
import com.sun.tools.javac.tree.JCTree.JCDoWhileLoop;
import com.sun.tools.javac.tree.JCTree.JCEnhancedForLoop;
@@ -1965,23 +1966,14 @@ public class CasualDiff {
return diffTree((JCTree) oldT.var, (JCTree) newT.var, bounds);
}
+ protected int diffConstantCaseLabel(JCConstantCaseLabel oldT,
JCConstantCaseLabel newT, int[] bounds) {
+ return diffTree((JCTree) oldT.expr, (JCTree) newT.expr, bounds);
+ }
+
protected int diffCase(JCCase oldT, JCCase newT, int[] bounds) {
int localPointer = bounds[0];
- List<? extends JCTree> oldPatterns;
- List<? extends JCTree> newPatterns;
-
- if(!(oldT.getLabels().size()==1 &&
oldT.getLabels().get(0).getKind().toString().equals("DEFAULT_CASE_LABEL"))){
- oldPatterns = oldT.getLabels();
- }else{
- oldPatterns = oldT.getExpressions();
- }
-
- if(!(newT.getLabels().size() == 1 &&
newT.getLabels().get(0).getKind().toString().equals("DEFAULT_CASE_LABEL"))){
- newPatterns = newT.getLabels();
- }else{
- newPatterns = newT.getExpressions();
- }
-
+ List<? extends JCTree.JCCaseLabel> oldPatterns = oldT.getLabels();
+ List<? extends JCTree.JCCaseLabel> newPatterns = newT.getLabels();
PositionEstimator patternEst = EstimatorFactory.casePatterns(
oldPatterns,
newPatterns,
@@ -1990,24 +1982,13 @@ public class CasualDiff {
int posHint;
int endpos;
int copyTo;
- if (oldPatterns.isEmpty()) {
- moveFwdToOneOfTokens(tokenSequence, bounds[0],
EnumSet.of(JavaTokenId.DEFAULT));
- tokenSequence.moveNext();
+ if (JavaTokenId.DEFAULT == moveFwdToOneOfTokens(tokenSequence,
bounds[0], EnumSet.of(JavaTokenId.CASE, JavaTokenId.DEFAULT))) {
copyTo = endpos = posHint = tokenSequence.offset();
-
- if (!newPatterns.isEmpty()) {
- copyTo = getOldPos(oldT);
- }
} else {
copyTo = posHint =
oldPatterns.iterator().next().getStartPosition();
endpos = endPos(oldPatterns.get(oldPatterns.size() - 1));
-
- if (newPatterns.isEmpty()) {
- moveFwdToOneOfTokens(tokenSequence, bounds[0],
EnumSet.of(JavaTokenId.CASE));
+ if (newPatterns.size() == 1 && newPatterns.get(0).getKind() ==
Kind.DEFAULT_CASE_LABEL) {
copyTo = tokenSequence.offset();
- copyTo(localPointer, copyTo);
- localPointer = copyTo = posHint = endpos;
- printer.print("default");
}
}
copyTo(localPointer, copyTo);
@@ -5439,8 +5420,10 @@ public class CasualDiff {
if (oldT == null && newT != null)
throw new IllegalArgumentException("Null is not allowed in
parameters.");
- if (oldT == newT)
- return elementBounds[0];
+ if (oldT == newT) {
+ copyTo(elementBounds[0], elementBounds[1]);
+ return elementBounds[1];
+ }
if (newT == null) {
tokenSequence.move(elementBounds[1]);
@@ -5730,6 +5713,13 @@ public class CasualDiff {
case BINDINGPATTERN:
retVal = diffBindingPattern((JCBindingPattern) oldT,
(JCBindingPattern) newT, elementBounds);
break;
+ case DEFAULTCASELABEL:
+ copyTo(elementBounds[0], elementBounds[1]);
+ retVal = elementBounds[1];
+ break;
+ case CONSTANTCASELABEL:
+ retVal = diffConstantCaseLabel((JCConstantCaseLabel) oldT,
(JCConstantCaseLabel) newT, elementBounds);
+ break;
default:
// handle special cases like field groups and enum constants
if (oldT.getKind() == Kind.OTHER) {
diff --git
a/java/java.source.base/src/org/netbeans/modules/java/source/save/Reformatter.java
b/java/java.source.base/src/org/netbeans/modules/java/source/save/Reformatter.java
index 434d2cda7d..35b1f39032 100644
---
a/java/java.source.base/src/org/netbeans/modules/java/source/save/Reformatter.java
+++
b/java/java.source.base/src/org/netbeans/modules/java/source/save/Reformatter.java
@@ -2801,20 +2801,46 @@ public class Reformatter implements ReformatTask {
}
@Override
- public Boolean visitGuardedPattern(GuardedPatternTree node, Void p) {
+ public Boolean visitDefaultCaseLabel(DefaultCaseLabelTree node, Void
p) {
+ accept(DEFAULT);
+ return true;
+ }
+
+ @Override
+ public Boolean visitConstantCaseLabel(ConstantCaseLabelTree node, Void
p) {
+ scan(node.getConstantExpression(), p);
+ return true;
+ }
+
+ @Override
+ public Boolean visitPatternCaseLabel(PatternCaseLabelTree node, Void
p) {
scan(node.getPattern(), p);
space();
- accept(AMPAMP);
+ accept(IDENTIFIER);
space();
- scan(node.getExpression(), p);
+ scan(node.getGuard(), p);
+ return true;
+ }
+ @Override
+ public Boolean visitDeconstructionPattern(DeconstructionPatternTree
node, Void p) {
+ scan(node.getDeconstructor(), p);
+ accept(LPAREN);
+ scan(node.getNestedPatterns(), p);
+ accept(RPAREN);
+ if (node.getVariable() != null) {
+ space();
+ accept(IDENTIFIER);
+ }
return true;
}
@Override
public Boolean visitParenthesizedPattern(ParenthesizedPatternTree
node, Void p) {
accept(LPAREN);
+ spaces(0);
scan(node.getPattern(), p);
+ spaces(0);
accept(RPAREN);
return true;
}
@@ -2933,36 +2959,24 @@ public class Reformatter implements ReformatTask {
@Override
public Boolean visitCase(CaseTree node, Void p) {
- List<? extends Tree> labels = node.getLabels();
- if (labels != null && labels.size() > 0) {
+ List<? extends CaseLabelTree> labels = node.getLabels();
+ if (labels != null && !labels.isEmpty()) {
if (tokens.token().id() == JavaTokenId.DEFAULT &&
labels.get(0).getKind() == Kind.DEFAULT_CASE_LABEL) {
accept(DEFAULT);
} else {
accept(CASE);
space();
- for (Tree label : labels) {
- switch (label.getKind()) {
- case DEFAULT_CASE_LABEL:
- removeWhiteSpace(JavaTokenId.DEFAULT);
- accept(DEFAULT);
- break;
- case BINDING_PATTERN:
- case PARENTHESIZED_PATTERN:
- case GUARDED_PATTERN:
- removeWhiteSpace(JavaTokenId.IDENTIFIER);
- scan(label, p);
- break;
- case NULL_LITERAL:
- removeWhiteSpace(JavaTokenId.NULL);
- scan(label, p);
- break;
- default:
- scan(label, p);
- break;
+ for (Iterator<? extends CaseLabelTree> it =
labels.iterator(); it.hasNext();) {
+ CaseLabelTree label = it.next();
+ scan(label, p);
+ if (it.hasNext()) {
+ spaces(0);
+ accept(COMMA);
+ space();
}
}
}
- } else if (node.getExpressions().size() > 0) {
+ } else if (!node.getExpressions().isEmpty()) {
List<? extends ExpressionTree> exprs = node.getExpressions();
accept(CASE);
space();
@@ -3016,15 +3030,14 @@ public class Reformatter implements ReformatTask {
if (tokens.offset() >= endPos) {
break;
}
- if (tokens.token().id() == forToken) {
- break;
- }
if (tokens.token().id() == WHITESPACE) {
String text = tokens.token().text().toString();
String ind = getIndent();
if (!ind.equals(text)) {
addDiff(new Diff(tokens.offset(), tokens.offset() +
tokens.token().length(), " "));
}
+ } else if (forToken == null || tokens.token().id() ==
forToken) {
+ break;
}
} while (tokens.moveNext());
}
diff --git
a/java/java.source.base/src/org/netbeans/modules/java/source/save/Reindenter.java
b/java/java.source.base/src/org/netbeans/modules/java/source/save/Reindenter.java
index e6be578501..1632cf2db0 100644
---
a/java/java.source.base/src/org/netbeans/modules/java/source/save/Reindenter.java
+++
b/java/java.source.base/src/org/netbeans/modules/java/source/save/Reindenter.java
@@ -709,9 +709,9 @@ public class Reindenter implements IndentTask {
}
if (t != null) {
int i = getCurrentIndent(t, path);
- currentIndent = i < 0 ? getStmtIndent(startOffset,
endOffset, EnumSet.of(tokenId), getEndPosition(((CaseTree)
last).getExpression()), currentIndent) : i;
+ currentIndent = i < 0 ? getStmtIndent(startOffset,
endOffset, EnumSet.of(tokenId), getEndPosition(((CaseTree)
last).getExpression()), currentIndent) : i; // TODO
} else {
- currentIndent = getStmtIndent(startOffset, endOffset,
EnumSet.of(tokenId), getEndPosition(((CaseTree) last).getExpression()),
currentIndent);
+ currentIndent = getStmtIndent(startOffset, endOffset,
EnumSet.of(tokenId), getEndPosition(((CaseTree) last).getExpression()),
currentIndent); // TODO
}
break;
@@ -881,10 +881,10 @@ public class Reindenter implements IndentTask {
}
if (t != null) {
int i = getCurrentIndent(t, path);
- currentIndent = i < 0 ? getStmtIndent(startOffset,
endOffset, EnumSet.of(JavaTokenId.COLON), getEndPosition(ct.getExpression()),
currentIndent) : i;
+ currentIndent = i < 0 ? getStmtIndent(startOffset,
endOffset, EnumSet.of(JavaTokenId.COLON), getEndPosition(ct.getExpression()),
currentIndent) : i; // TODO
} else {
int i = getCurrentIndent(ct, path);
- currentIndent = i < 0 ? getStmtIndent(startOffset,
endOffset, EnumSet.of(JavaTokenId.COLON), getEndPosition(ct.getExpression()),
currentIndent) : i;
+ currentIndent = i < 0 ? getStmtIndent(startOffset,
endOffset, EnumSet.of(JavaTokenId.COLON), getEndPosition(ct.getExpression()),
currentIndent) : i; // TODO
currentIndent += cs.getIndentSize();
}
} else {
diff --git
a/java/java.source.base/src/org/netbeans/modules/java/source/transform/ImmutableTreeTranslator.java
b/java/java.source.base/src/org/netbeans/modules/java/source/transform/ImmutableTreeTranslator.java
index 7844e18854..63c21faf45 100644
---
a/java/java.source.base/src/org/netbeans/modules/java/source/transform/ImmutableTreeTranslator.java
+++
b/java/java.source.base/src/org/netbeans/modules/java/source/transform/ImmutableTreeTranslator.java
@@ -318,16 +318,20 @@ public class ImmutableTreeTranslator implements
TreeVisitor<Tree,Object> {
* Visitor methods
****************************************************************************/
+ @Override
public Tree visitCompilationUnit(CompilationUnitTree tree, Object p) {
CompilationUnitTree result = rewriteChildren(tree);
return result;
}
+ @Override
public Tree visitPackage(PackageTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitImport(ImportTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitClass(ClassTree tree, Object p) {
Element oldSym = currentSym;
importAnalysis.classEntered(tree);
@@ -337,6 +341,7 @@ public class ImmutableTreeTranslator implements
TreeVisitor<Tree,Object> {
currentSym = oldSym;
return result;
}
+ @Override
public Tree visitMethod(MethodTree tree, Object p) {
Element oldSym = currentSym;
currentSym = model.getElement(tree);
@@ -345,6 +350,7 @@ public class ImmutableTreeTranslator implements
TreeVisitor<Tree,Object> {
return result;
}
+ @Override
public Tree visitVariable(VariableTree tree, Object p) {
Element oldSym = currentSym;
currentSym = model.getElement(tree);
@@ -353,105 +359,139 @@ public class ImmutableTreeTranslator implements
TreeVisitor<Tree,Object> {
return result;
}
+ @Override
public Tree visitEmptyStatement(EmptyStatementTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitBlock(BlockTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitUnionType(UnionTypeTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitDoWhileLoop(DoWhileLoopTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitWhileLoop(WhileLoopTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitForLoop(ForLoopTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitEnhancedForLoop(EnhancedForLoopTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitLabeledStatement(LabeledStatementTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitLambdaExpression(LambdaExpressionTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitSwitch(SwitchTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitCase(CaseTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitSynchronized(SynchronizedTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitTry(TryTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitCatch(CatchTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitConditionalExpression(ConditionalExpressionTree tree,
Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitIf(IfTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitExpressionStatement(ExpressionStatementTree tree, Object
p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitBreak(BreakTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitContinue(ContinueTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitReturn(ReturnTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitThrow(ThrowTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitAssert(AssertTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitMethodInvocation(MethodInvocationTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitNewClass(NewClassTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitNewArray(NewArrayTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitParenthesized(ParenthesizedTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitAssignment(AssignmentTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitCompoundAssignment(CompoundAssignmentTree tree, Object p)
{
return rewriteChildren(tree);
}
+ @Override
public Tree visitUnary(UnaryTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitBinary(BinaryTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitTypeCast(TypeCastTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitInstanceOf(InstanceOfTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitIntersectionType(IntersectionTypeTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitArrayAccess(ArrayAccessTree tree, Object p) {
return rewriteChildren(tree);
}
@@ -459,6 +499,7 @@ public class ImmutableTreeTranslator implements
TreeVisitor<Tree,Object> {
public Tree visitMemberReference(MemberReferenceTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitMemberSelect(MemberSelectTree tree, Object p) {
if (tree instanceof QualIdentTree) {
QualIdentTree qit = (QualIdentTree) tree;
@@ -477,75 +518,107 @@ public class ImmutableTreeTranslator implements
TreeVisitor<Tree,Object> {
return rewriteChildren(tree);
}
}
+ @Override
public Tree visitIdentifier(IdentifierTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitLiteral(LiteralTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitPrimitiveType(PrimitiveTypeTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitArrayType(ArrayTypeTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitParameterizedType(ParameterizedTypeTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitTypeParameter(TypeParameterTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitWildcard(WildcardTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitAnnotatedType(AnnotatedTypeTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitAnnotation(AnnotationTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitModifiers(ModifiersTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitErroneous(ErroneousTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitModule(ModuleTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitExports(ExportsTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitOpens(OpensTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitProvides(ProvidesTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitRequires(RequiresTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitUses(UsesTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitBindingPattern(BindingPatternTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitDefaultCaseLabel(DefaultCaseLabelTree tree, Object p) {
return rewriteChildren(tree);
}
- public Tree visitGuardedPattern(GuardedPatternTree tree, Object p) {
+ @Override
+ public Tree visitConstantCaseLabel(ConstantCaseLabelTree tree, Object p) {
+ return rewriteChildren(tree);
+ }
+ @Override
+ public Tree visitPatternCaseLabel(PatternCaseLabelTree tree, Object p) {
+ return rewriteChildren(tree);
+ }
+ @Override
+ public Tree visitDeconstructionPattern(DeconstructionPatternTree tree,
Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitParenthesizedPattern(ParenthesizedPatternTree tree,
Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitSwitchExpression(SwitchExpressionTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitYield(YieldTree tree, Object p) {
return rewriteChildren(tree);
}
+ @Override
public Tree visitOther(Tree tree, Object p) {
throw new Error("Tree not overloaded: "+tree);
}
@@ -1429,15 +1502,40 @@ public class ImmutableTreeTranslator implements
TreeVisitor<Tree,Object> {
return tree;
}
- private GuardedPatternTree rewriteChildren(GuardedPatternTree tree) {
+ private ConstantCaseLabelTree rewriteChildren(ConstantCaseLabelTree tree) {
+ ExpressionTree newExpression = (ExpressionTree)
translate(tree.getConstantExpression());
+ if (newExpression != tree.getConstantExpression()) {
+ ConstantCaseLabelTree n = make.ConstantCaseLabel(newExpression);
+ model.setType(n, model.getType(tree));
+ copyCommentTo(tree, n);
+ copyPosTo(tree, n);
+ tree = n;
+ }
+ return tree;
+ }
+
+ private PatternCaseLabelTree rewriteChildren(PatternCaseLabelTree tree) {
+ ExpressionTree newGuard = (ExpressionTree) translate(tree.getGuard());
PatternTree newPattern = (PatternTree) translate(tree.getPattern());
- ExpressionTree newGuard = (ExpressionTree)
translate(tree.getExpression());
- if (newPattern != tree.getPattern() ||
- newGuard != tree.getExpression()) {
- GuardedPatternTree n = make.GuardedPattern(newPattern, newGuard);
+ if (newGuard != tree.getGuard() || newPattern != tree.getPattern()) {
+ PatternCaseLabelTree n = make.PatternCaseLabel(newPattern,
newGuard);
model.setType(n, model.getType(tree));
- copyCommentTo(tree,n);
- copyPosTo(tree,n);
+ copyCommentTo(tree, n);
+ copyPosTo(tree, n);
+ tree = n;
+ }
+ return tree;
+ }
+
+ private DeconstructionPatternTree
rewriteChildren(DeconstructionPatternTree tree) {
+ ExpressionTree newDeconstructor = (ExpressionTree)
translate(tree.getDeconstructor());
+ List<? extends PatternTree> newNestedPatterns =
translate(tree.getNestedPatterns());
+ VariableTree newVariable = (VariableTree)
translate(tree.getVariable());
+ if (newDeconstructor != tree.getDeconstructor() || newVariable !=
tree.getVariable() || !Objects.equals(newNestedPatterns,
tree.getNestedPatterns())) {
+ DeconstructionPatternTree n =
make.DeconstructionPattern(newDeconstructor, newNestedPatterns, newVariable);
+ model.setType(n, model.getType(tree));
+ copyCommentTo(tree, n);
+ copyPosTo(tree, n);
tree = n;
}
return tree;
diff --git
a/java/java.source.base/src/org/netbeans/modules/java/source/transform/TreeDuplicator.java
b/java/java.source.base/src/org/netbeans/modules/java/source/transform/TreeDuplicator.java
index 39c57437d9..35646e2c97 100644
---
a/java/java.source.base/src/org/netbeans/modules/java/source/transform/TreeDuplicator.java
+++
b/java/java.source.base/src/org/netbeans/modules/java/source/transform/TreeDuplicator.java
@@ -34,7 +34,9 @@ import com.sun.source.tree.ClassTree;
import com.sun.source.tree.CompilationUnitTree;
import com.sun.source.tree.CompoundAssignmentTree;
import com.sun.source.tree.ConditionalExpressionTree;
+import com.sun.source.tree.ConstantCaseLabelTree;
import com.sun.source.tree.ContinueTree;
+import com.sun.source.tree.DeconstructionPatternTree;
import com.sun.source.tree.DefaultCaseLabelTree;
import com.sun.source.tree.DoWhileLoopTree;
import com.sun.source.tree.EmptyStatementTree;
@@ -44,7 +46,6 @@ import com.sun.source.tree.ExportsTree;
import com.sun.source.tree.ExpressionStatementTree;
import com.sun.source.tree.ExpressionTree;
import com.sun.source.tree.ForLoopTree;
-import com.sun.source.tree.GuardedPatternTree;
import com.sun.source.tree.IdentifierTree;
import com.sun.source.tree.IfTree;
import com.sun.source.tree.ImportTree;
@@ -66,6 +67,7 @@ import com.sun.source.tree.PackageTree;
import com.sun.source.tree.ParameterizedTypeTree;
import com.sun.source.tree.ParenthesizedPatternTree;
import com.sun.source.tree.ParenthesizedTree;
+import com.sun.source.tree.PatternCaseLabelTree;
import com.sun.source.tree.PrimitiveTypeTree;
import com.sun.source.tree.ProvidesTree;
import com.sun.source.tree.RequiresTree;
@@ -192,7 +194,9 @@ public class TreeDuplicator implements TreeVisitor<Tree,
Void> {
@Override
public Tree visitCase(CaseTree tree, Void p) {
- CaseTree n = make.Case(tree.getExpression(), tree.getStatements());
+ CaseTree n = tree.getCaseKind() == CaseTree.CaseKind.STATEMENT
+ ? make.Case(tree.getExpressions(), tree.getStatements())
+ : make.Case(tree.getExpressions(), tree.getBody());
model.setType(n, model.getType(tree));
comments.copyComments(tree, n);
model.setPos(n, model.getPos(tree));
@@ -678,8 +682,26 @@ public class TreeDuplicator implements TreeVisitor<Tree,
Void> {
}
@Override
- public Tree visitGuardedPattern(GuardedPatternTree tree, Void p) {
- GuardedPatternTree n = make.GuardedPattern(tree.getPattern(),
tree.getExpression());
+ public Tree visitConstantCaseLabel(ConstantCaseLabelTree tree, Void p) {
+ ConstantCaseLabelTree n =
make.ConstantCaseLabel(tree.getConstantExpression());
+ model.setType(n, model.getType(tree));
+ comments.copyComments(tree, n);
+ model.setPos(n, model.getPos(tree));
+ return n;
+ }
+
+ @Override
+ public Tree visitPatternCaseLabel(PatternCaseLabelTree tree, Void p) {
+ PatternCaseLabelTree n = make.PatternCaseLabel(tree.getPattern(),
tree.getGuard());
+ model.setType(n, model.getType(tree));
+ comments.copyComments(tree, n);
+ model.setPos(n, model.getPos(tree));
+ return n;
+ }
+
+ @Override
+ public Tree visitDeconstructionPattern(DeconstructionPatternTree tree,
Void p) {
+ DeconstructionPatternTree n =
make.DeconstructionPattern(tree.getDeconstructor(), tree.getNestedPatterns(),
tree.getVariable());
model.setType(n, model.getType(tree));
comments.copyComments(tree, n);
model.setPos(n, model.getPos(tree));
diff --git
a/java/java.source.base/test/unit/src/org/netbeans/api/java/source/gen/SwitchRuleFormattingTest.java
b/java/java.source.base/test/unit/src/org/netbeans/api/java/source/gen/SwitchRuleFormattingTest.java
index 0ef62eeb50..16d92c0b97 100644
---
a/java/java.source.base/test/unit/src/org/netbeans/api/java/source/gen/SwitchRuleFormattingTest.java
+++
b/java/java.source.base/test/unit/src/org/netbeans/api/java/source/gen/SwitchRuleFormattingTest.java
@@ -205,46 +205,42 @@ public void testSwitchRuleFormatting2() throws Exception {
SwitchTree switchBlock = (SwitchTree) ((BlockTree)
method.getBody()).getStatements().get(0);
List<? extends CaseTree> cases;
List<ExpressionTree> patterns = new ArrayList<>();
- if(switchBlock!=null){
+ if(switchBlock != null){
boolean switchExpressionFlag = switchBlock.getKind() ==
Kind.SWITCH_EXPRESSION;
- if (switchExpressionFlag) {
- cases = ((SwitchExpressionTree) switchBlock).getCases();
- } else {
- cases = ((SwitchTree) switchBlock).getCases();
- }
- for (Iterator<? extends CaseTree> it = cases.iterator();
it.hasNext();) {
- CaseTree ct = it.next();
- patterns.addAll(ct.getExpressions());
- List<StatementTree> statements;
- if (ct.getStatements() == null) {
- statements = new ArrayList<>(((JCTree.JCCase)
ct).stats);
+ if (switchExpressionFlag) {
+ cases = ((SwitchExpressionTree)
switchBlock).getCases();
} else {
- statements = new ArrayList<>(ct.getStatements());
- if(!statements.isEmpty() &&
statements.get(statements.size()-1) instanceof JCTree.JCBreak){
- statements.remove(statements.size()-1);
- }
+ cases = ((SwitchTree) switchBlock).getCases();
}
- if (statements.isEmpty()) {
- if (it.hasNext()) {
- continue;
+ for (Iterator<? extends CaseTree> it = cases.iterator();
it.hasNext();) {
+ CaseTree ct = it.next();
+ patterns.addAll(ct.getExpressions());
+ List<StatementTree> statements;
+ if (ct.getStatements() == null) {
+ statements = new ArrayList<>(((JCTree.JCCase)
ct).stats);
+ } else {
+ statements = new ArrayList<>(ct.getStatements());
+ if(!statements.isEmpty() &&
statements.get(statements.size()-1) instanceof JCTree.JCBreak){
+ statements.remove(statements.size()-1);
+ }
}
- }
- Set<Element> seenVariables = new HashSet<>();
- int idx = 0;
- for (StatementTree statement : new
ArrayList<>(statements)) {
- Tree body = make.Block(statements, false);
- if (statements.size() == 1) {
- if (statements.get(0).getKind() ==
Tree.Kind.EXPRESSION_STATEMENT
- || statements.get(0).getKind() ==
Tree.Kind.THROW
- || statements.get(0).getKind() ==
Tree.Kind.BLOCK) {
- body = statements.get(0);
+ if (statements.isEmpty()) {
+ if (it.hasNext()) {
+ continue;
+ }
+ } else {
+ Tree body = make.Block(statements, false);
+ if (statements.size() == 1) {
+ if (statements.get(0).getKind() ==
Tree.Kind.EXPRESSION_STATEMENT
+ || statements.get(0).getKind() ==
Tree.Kind.THROW
+ || statements.get(0).getKind() ==
Tree.Kind.BLOCK) {
+ body = statements.get(0);
+ }
}
+ newCases.add(make.Case(patterns, body));
+ patterns = new ArrayList<>();
}
- newCases.add(make.Case(patterns, body));
- patterns = new ArrayList<>();
}
- }
-
workingCopy.rewrite((SwitchTree) switchBlock ,
make.Switch(((SwitchTree) switchBlock).getExpression(), newCases));
}
}
diff --git
a/java/java.source.base/test/unit/src/org/netbeans/api/java/source/gen/SwitchTest.java
b/java/java.source.base/test/unit/src/org/netbeans/api/java/source/gen/SwitchTest.java
index ae896dbdd9..252714d433 100644
---
a/java/java.source.base/test/unit/src/org/netbeans/api/java/source/gen/SwitchTest.java
+++
b/java/java.source.base/test/unit/src/org/netbeans/api/java/source/gen/SwitchTest.java
@@ -289,7 +289,7 @@ public class SwitchTest extends GeneratorTestBase {
labels.remove(0);
return
copy.getTreeMaker().CaseMultipleLabels(labels, tree.getStatements());
},
- "case " + /*XXX: too many spaces:*/ " " + "0, 1:"),
+ "case 0, 1:"),
new TestCase("case -1, 0, 1:",
(copy, tree) -> {
List<ExpressionTree> labels = new
ArrayList<>(tree.getExpressions());
diff --git
a/java/java.source.base/test/unit/src/org/netbeans/modules/java/source/save/FormatingTest.java
b/java/java.source.base/test/unit/src/org/netbeans/modules/java/source/save/FormatingTest.java
index d2ebd92e30..a55ea973d0 100644
---
a/java/java.source.base/test/unit/src/org/netbeans/modules/java/source/save/FormatingTest.java
+++
b/java/java.source.base/test/unit/src/org/netbeans/modules/java/source/save/FormatingTest.java
@@ -2853,7 +2853,7 @@ public class FormatingTest extends NbTestCase {
+ " Object str = \"pattern matching switch\";\n"
+ " switch (str) {\n"
+ "case \n"
- + " String s && s.length() == 1\n"
+ + " String s when s.length() == 1\n"
+ " \n"
+ " ->\n"
+ " System.out.println(\"case with guarded
pattern formatting\");\n"
@@ -2871,7 +2871,7 @@ public class FormatingTest extends NbTestCase {
+ " void testSwitchCaseGuardedPattern() {\n"
+ " Object str = \"pattern matching switch\";\n"
+ " switch (str) {\n"
- + " case String s && s.length() == 1 ->\n"
+ + " case String s when s.length() == 1 ->\n"
+ " System.out.println(\"case with guarded
pattern formatting\");\n"
+ " default ->\n"
+ " System.out.println(\"default
formatting\");\n"
@@ -2903,7 +2903,7 @@ public class FormatingTest extends NbTestCase {
+ " switch (str) {\n"
+ "case \n"
+ " null,\n"
- + " String s && s.length() == 1\n"
+ + " String s when s.length() == 1\n"
+ " \n"
+ " ->\n"
+ " System.out.println(\"case with null and
guarded pattern formatting\");\n"
@@ -2921,7 +2921,7 @@ public class FormatingTest extends NbTestCase {
+ " void testSwitchCaseNullAndGuardedPattern() {\n"
+ " Object str = \"pattern matching switch\";\n"
+ " switch (str) {\n"
- + " case null, String s && s.length() == 1 ->\n"
+ + " case null, String s when s.length() == 1 ->\n"
+ " System.out.println(\"case with null and
guarded pattern formatting\");\n"
+ " default ->\n"
+ " System.out.println(\"default
formatting\");\n"
@@ -3052,9 +3052,8 @@ public class FormatingTest extends NbTestCase {
+ " switch (str) {\n"
+ "case \n"
+ " (String \n"
- + " s &&\n"
+ + " s) when\n"
+ " s.length() == 1\n"
- + " )\n"
+ " \n"
+ " ->\n"
+ " System.out.println(\"case with
Parenthesized Guarded Pattern formatting\");default ->\n"
@@ -3071,7 +3070,7 @@ public class FormatingTest extends NbTestCase {
+ " void testSwitchCaseParenthesizedGuardedPattern() {\n"
+ " Object str = \"pattern matching switch\";\n"
+ " switch (str) {\n"
- + " case (String s && s.length() == 1) ->\n"
+ + " case (String s) when s.length() == 1 ->\n"
+ " System.out.println(\"case with
Parenthesized Guarded Pattern formatting\");\n"
+ " default ->\n"
+ " System.out.println(\"default
formatting\");\n"
@@ -3103,9 +3102,9 @@ public class FormatingTest extends NbTestCase {
+ " switch (str) {\n"
+ "case \n"
+ " (String \n"
- + " s &&\n"
+ + " s) when\n"
+ " s.length() == 1\n"
- + " ) , \n"
+ + " , \n"
+ " null\n"
+ " \n"
+ " ->\n"
@@ -3123,7 +3122,7 @@ public class FormatingTest extends NbTestCase {
+ " void testSwitchCaseParenthesizedGuardedPatternAndNull()
{\n"
+ " Object str = \"pattern matching switch\";\n"
+ " switch (str) {\n"
- + " case (String s && s.length() == 1) , null ->\n"
+ + " case (String s) when s.length() == 1, null ->\n"
+ " System.out.println(\"case with
Parenthesized Binding Pattern formatting\");\n"
+ " default ->\n"
+ " System.out.println(\"default
formatting\");\n"
@@ -3134,58 +3133,6 @@ public class FormatingTest extends NbTestCase {
reformat(doc, content, golden);
}
- public void
testSwitchCaseGuardedPatternNestedParenthesizedPatternWithNull() throws
Exception {
- try {
- SourceVersion.valueOf("RELEASE_17"); //NOI18N
- } catch (IllegalArgumentException ex) {
- //OK, no RELEASE_17, skip test
- return;
- }
- testFile = new File(getWorkDir(), "Test.java");
- TestUtilities.copyStringToFile(testFile, "");
- FileObject testSourceFO = FileUtil.toFileObject(testFile);
- DataObject testSourceDO = DataObject.find(testSourceFO);
- EditorCookie ec = (EditorCookie)
testSourceDO.getCookie(EditorCookie.class);
- final Document doc = ec.openDocument();
- doc.putProperty(Language.class, JavaTokenId.language());
- String content = "package p;"
- + "public class Test{ \n"
- + "void
testSwitchCaseGuardedPatternNestedParenthesizedPattern() {\n"
- + " Object str = \"pattern matching switch\";\n"
- + " switch (str) {\n"
- + "case \n"
- + " (String \n"
- + " s ) &&\n"
- + " s.length() == 1\n"
- + " , \n"
- + " null\n"
- + " \n"
- + " ->\n"
- + "
System.out.println(\"SwitchCaseGuardedPatternNestedParenthesizedPattern\");default
->\n"
- + " System.out.println(\"default
formatting\");\n"
- + " }\n"
- + " }"
- + "}";
-
- String golden
- = "package p;\n"
- + "\n"
- + "public class Test {\n"
- + "\n"
- + " void
testSwitchCaseGuardedPatternNestedParenthesizedPattern() {\n"
- + " Object str = \"pattern matching switch\";\n"
- + " switch (str) {\n"
- + " case (String s) && s.length() == 1 , null ->\n"
- + "
System.out.println(\"SwitchCaseGuardedPatternNestedParenthesizedPattern\");\n"
- + " default ->\n"
- + " System.out.println(\"default
formatting\");\n"
- + " }\n"
- + " }\n"
- + "}\n"
- + "";
- reformat(doc, content, golden);
- }
-
public void testSwitchCaseGuardedPatternNestedParenthesizedPattern()
throws Exception {
try {
SourceVersion.valueOf("RELEASE_17"); //NOI18N
@@ -3206,7 +3153,7 @@ public class FormatingTest extends NbTestCase {
+ " Object str = \"pattern matching switch\";\n"
+ " switch (str) {\n"
+ "case ( \n"
- + " String s) && s.length() >= 2 && \n"
+ + " String s) when s.length() >= 2 && \n"
+ " \n"
+ " (s.contains(\"@\") ||
s.contains(\"!\")) \n"
+ " \n"
@@ -3225,7 +3172,7 @@ public class FormatingTest extends NbTestCase {
+ " void
testSwitchCaseGuardedPatternNestedParenthesizedPattern() {\n"
+ " Object str = \"pattern matching switch\";\n"
+ " switch (str) {\n"
- + " case ( String s) && s.length() >= 2\n"
+ + " case (String s) when s.length() >= 2\n"
+ " && (s.contains(\"@\") || s.contains(\"!\"))
->\n"
+ " String.format(\"Valid string value is %s\",
s);\n"
+ " default ->\n"
@@ -3260,11 +3207,11 @@ public class FormatingTest extends NbTestCase {
+ "case null ->\n"
+ " System.out.println(\"case with null formatting\");\n"
+ " case String string\n"
- + " && (string.length()== iso.filter(i -> i / 2 ==
0).count() || string.length() == 0)\n"
+ + " when (string.length()== iso.filter(i -> i / 2 ==
0).count() || string.length() == 0)\n"
+ " ->\n"
+ " System.out.println(\"case with pattern matching +
condition + lambda expression formatting\");\n"
- + " case String s && s.length() == 1
->System.out.println(\"case with pattern matching + condition formatting\");\n"
- + " case (String s && true )-> \n"
+ + " case String s when s.length() == 1
->System.out.println(\"case with pattern matching + condition formatting\");\n"
+ + " case (String s )-> \n"
+ " System.out.println(\"case with pattern matching +
condition formatting\");\n"
+ " case CharSequence\n"
+ " s ->\n"
@@ -3288,11 +3235,11 @@ public class FormatingTest extends NbTestCase {
+ " switch (str) {\n"
+ " case null ->\n"
+ " System.out.println(\"case with null
formatting\");\n"
- + " case String string && (string.length() ==
iso.filter(i -> i / 2 == 0).count() || string.length() == 0) ->\n"
+ + " case String string when (string.length() ==
iso.filter(i -> i / 2 == 0).count() || string.length() == 0) ->\n"
+ " System.out.println(\"case with pattern
matching + condition + lambda expression formatting\");\n"
- + " case String s && s.length() == 1 ->\n"
+ + " case String s when s.length() == 1 ->\n"
+ " System.out.println(\"case with pattern
matching + condition formatting\");\n"
- + " case (String s && true) ->\n"
+ + " case (String s) ->\n"
+ " System.out.println(\"case with pattern
matching + condition formatting\");\n"
+ " case CharSequence s ->\n"
+ " System.out.println(\"case with pattern
matching formatting\");\n"
@@ -3329,11 +3276,11 @@ public class FormatingTest extends NbTestCase {
+ "case null ->\n"
+ " \"case with null formatting\";\n"
+ " case String string\n"
- + " && (string.length()== iso.filter(i -> i / 2 ==
0).count() || string.length() == 0)\n"
+ + " when (string.length()== iso.filter(i -> i / 2 ==
0).count() || string.length() == 0)\n"
+ " ->\n"
+ " \"case with pattern matching + condition + lambda
expression formatting\";\n"
- + " case String s && s.length() == 1
->\"case with pattern matching + condition formatting\";\n"
- + " case (String s && true )-> \n"
+ + " case String s when s.length() == 1
->\"case with pattern matching + condition formatting\";\n"
+ + " case (String s )-> \n"
+ " \"case with pattern matching + condition
formatting\";\n"
+ " case CharSequence\n"
+ " s ->\n"
@@ -3357,11 +3304,11 @@ public class FormatingTest extends NbTestCase {
+ " String retVal = switch (str) {\n"
+ " case null ->\n"
+ " \"case with null formatting\";\n"
- + " case String string && (string.length() ==
iso.filter(i -> i / 2 == 0).count() || string.length() == 0) ->\n"
+ + " case String string when (string.length() ==
iso.filter(i -> i / 2 == 0).count() || string.length() == 0) ->\n"
+ " \"case with pattern matching + condition +
lambda expression formatting\";\n"
- + " case String s && s.length() == 1 ->\n"
+ + " case String s when s.length() == 1 ->\n"
+ " \"case with pattern matching + condition
formatting\";\n"
- + " case (String s && true) ->\n"
+ + " case (String s) ->\n"
+ " \"case with pattern matching + condition
formatting\";\n"
+ " case CharSequence s ->\n"
+ " \"case with pattern matching
formatting\";\n"
diff --git a/java/java.source/nbproject/org-netbeans-modules-java-source.sig
b/java/java.source/nbproject/org-netbeans-modules-java-source.sig
index 05ec978dc5..95f3426a40 100644
--- a/java/java.source/nbproject/org-netbeans-modules-java-source.sig
+++ b/java/java.source/nbproject/org-netbeans-modules-java-source.sig
@@ -27,7 +27,6 @@ meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitErroneous(com.sun.
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitExports(com.sun.source.tree.ExportsTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitExpressionStatement(com.sun.source.tree.ExpressionStatementTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitForLoop(com.sun.source.tree.ForLoopTree,{com.sun.source.tree.TreeVisitor%1})
-meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitGuardedPattern(com.sun.source.tree.GuardedPatternTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitIdentifier(com.sun.source.tree.IdentifierTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitIf(com.sun.source.tree.IfTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitImport(com.sun.source.tree.ImportTree,{com.sun.source.tree.TreeVisitor%1})
@@ -108,7 +107,6 @@ meth public {com.sun.source.util.TreeScanner%0}
visitErroneous(com.sun.source.tr
meth public {com.sun.source.util.TreeScanner%0}
visitExports(com.sun.source.tree.ExportsTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitExpressionStatement(com.sun.source.tree.ExpressionStatementTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitForLoop(com.sun.source.tree.ForLoopTree,{com.sun.source.util.TreeScanner%1})
-meth public {com.sun.source.util.TreeScanner%0}
visitGuardedPattern(com.sun.source.tree.GuardedPatternTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitIdentifier(com.sun.source.tree.IdentifierTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitIf(com.sun.source.tree.IfTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitImport(com.sun.source.tree.ImportTree,{com.sun.source.util.TreeScanner%1})
diff --git a/java/java.source/nbproject/project.properties
b/java/java.source/nbproject/project.properties
index 627e2cdfba..b9bdb142b3 100644
--- a/java/java.source/nbproject/project.properties
+++ b/java/java.source/nbproject/project.properties
@@ -22,7 +22,7 @@ javadoc.name=Java Source
javadoc.title=Java Source
javadoc.arch=${basedir}/arch.xml
javadoc.apichanges=${basedir}/apichanges.xml
-spec.version.base=0.182.0
+spec.version.base=0.183.0
test.qa-functional.cp.extra=${refactoring.java.dir}/modules/ext/nb-javac-api.jar
test.unit.run.cp.extra=${o.n.core.dir}/core/core.jar:\
${o.n.core.dir}/lib/boot.jar:\
diff --git a/java/libs.javacapi/external/binaries-list
b/java/libs.javacapi/external/binaries-list
index cb152e08fa..b42feac2b1 100644
--- a/java/libs.javacapi/external/binaries-list
+++ b/java/libs.javacapi/external/binaries-list
@@ -14,5 +14,5 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-ECA15E615777CE6E7550F71EF312B8CEEBCBE0BD
com.dukescript.nbjavac:nb-javac:jdk-18.0.1+10:api
-3AD512FBC8830D89AC70D0CA59397C4868789DCC
com.dukescript.nbjavac:nb-javac:jdk-18.0.1+10
+DBA592C75DD52B97EC88A6B06ADF71D4F3C3DED9
com.dukescript.nbjavac:nb-javac:jdk-19+33:api
+A36688EDA1DE51508A039AED3518771C6F75E416
com.dukescript.nbjavac:nb-javac:jdk-19+33
diff --git a/java/libs.javacapi/external/nb-javac-jdk-18.0.1+10-license.txt
b/java/libs.javacapi/external/nb-javac-jdk-19+33-license.txt
similarity index 99%
rename from java/libs.javacapi/external/nb-javac-jdk-18.0.1+10-license.txt
rename to java/libs.javacapi/external/nb-javac-jdk-19+33-license.txt
index 2329bc0bf7..8123b5ff80 100644
--- a/java/libs.javacapi/external/nb-javac-jdk-18.0.1+10-license.txt
+++ b/java/libs.javacapi/external/nb-javac-jdk-19+33-license.txt
@@ -1,10 +1,10 @@
Name: Javac Compiler Implementation
Description: Javac Compiler Implementation
-Version: 18.0.1+10
-Files: nb-javac-jdk-18.0.1+10-api.jar nb-javac-jdk-18.0.1+10.jar
+Version: jdk-19+33
+Files: nb-javac-jdk-19+33-api.jar nb-javac-jdk-19+33.jar
License: GPL-2-CP
-Origin: OpenJDK (https://github.com/openjdk/jdk18)
-Source: https://github.com/openjdk/jdk18
+Origin: OpenJDK (https://github.com/openjdk/jdk19)
+Source: https://github.com/openjdk/jdk19
Type: optional,reviewed
Comment: The binary has been reviewed to be under the Classpath Exception as a
whole. Optional at runtime, but used by default.
diff --git a/java/libs.javacapi/nbproject/org-netbeans-libs-javacapi.sig
b/java/libs.javacapi/nbproject/org-netbeans-libs-javacapi.sig
index e3a6abe47d..808227321f 100644
--- a/java/libs.javacapi/nbproject/org-netbeans-libs-javacapi.sig
+++ b/java/libs.javacapi/nbproject/org-netbeans-libs-javacapi.sig
@@ -1,5 +1,5 @@
#Signature file v4.1
-#Version 8.39.0
+#Version 8.41.0
CLSS public abstract interface com.sun.source.doctree.AttributeTree
innr public final static !enum ValueKind
@@ -380,10 +380,20 @@ meth public abstract com.sun.source.tree.ExpressionTree
getCondition()
meth public abstract com.sun.source.tree.ExpressionTree getFalseExpression()
meth public abstract com.sun.source.tree.ExpressionTree getTrueExpression()
+CLSS public abstract interface com.sun.source.tree.ConstantCaseLabelTree
+intf com.sun.source.tree.CaseLabelTree
+meth public abstract com.sun.source.tree.ExpressionTree getConstantExpression()
+
CLSS public abstract interface com.sun.source.tree.ContinueTree
intf com.sun.source.tree.StatementTree
meth public abstract javax.lang.model.element.Name getLabel()
+CLSS public abstract interface com.sun.source.tree.DeconstructionPatternTree
+intf com.sun.source.tree.PatternTree
+meth public abstract com.sun.source.tree.ExpressionTree getDeconstructor()
+meth public abstract com.sun.source.tree.VariableTree getVariable()
+meth public abstract java.util.List<? extends com.sun.source.tree.PatternTree>
getNestedPatterns()
+
CLSS public abstract interface com.sun.source.tree.DefaultCaseLabelTree
intf com.sun.source.tree.CaseLabelTree
@@ -418,7 +428,6 @@ intf com.sun.source.tree.StatementTree
meth public abstract com.sun.source.tree.ExpressionTree getExpression()
CLSS public abstract interface com.sun.source.tree.ExpressionTree
-intf com.sun.source.tree.CaseLabelTree
intf com.sun.source.tree.Tree
CLSS public abstract interface com.sun.source.tree.ForLoopTree
@@ -428,11 +437,6 @@ meth public abstract com.sun.source.tree.StatementTree
getStatement()
meth public abstract java.util.List<? extends
com.sun.source.tree.ExpressionStatementTree> getUpdate()
meth public abstract java.util.List<? extends
com.sun.source.tree.StatementTree> getInitializer()
-CLSS public abstract interface com.sun.source.tree.GuardedPatternTree
-intf com.sun.source.tree.PatternTree
-meth public abstract com.sun.source.tree.ExpressionTree getExpression()
-meth public abstract com.sun.source.tree.PatternTree getPattern()
-
CLSS public abstract interface com.sun.source.tree.IdentifierTree
intf com.sun.source.tree.ExpressionTree
meth public abstract javax.lang.model.element.Name getName()
@@ -587,8 +591,12 @@ CLSS public abstract interface
com.sun.source.tree.ParenthesizedTree
intf com.sun.source.tree.ExpressionTree
meth public abstract com.sun.source.tree.ExpressionTree getExpression()
-CLSS public abstract interface com.sun.source.tree.PatternTree
+CLSS public abstract interface com.sun.source.tree.PatternCaseLabelTree
intf com.sun.source.tree.CaseLabelTree
+meth public abstract com.sun.source.tree.ExpressionTree getGuard()
+meth public abstract com.sun.source.tree.PatternTree getPattern()
+
+CLSS public abstract interface com.sun.source.tree.PatternTree
intf com.sun.source.tree.Tree
CLSS public abstract interface com.sun.source.tree.PrimitiveTypeTree
@@ -667,7 +675,9 @@ fld public final static com.sun.source.tree.Tree$Kind
COMPILATION_UNIT
fld public final static com.sun.source.tree.Tree$Kind CONDITIONAL_AND
fld public final static com.sun.source.tree.Tree$Kind CONDITIONAL_EXPRESSION
fld public final static com.sun.source.tree.Tree$Kind CONDITIONAL_OR
+fld public final static com.sun.source.tree.Tree$Kind CONSTANT_CASE_LABEL
fld public final static com.sun.source.tree.Tree$Kind CONTINUE
+fld public final static com.sun.source.tree.Tree$Kind DECONSTRUCTION_PATTERN
fld public final static com.sun.source.tree.Tree$Kind DEFAULT_CASE_LABEL
fld public final static com.sun.source.tree.Tree$Kind DIVIDE
fld public final static com.sun.source.tree.Tree$Kind DIVIDE_ASSIGNMENT
@@ -685,7 +695,6 @@ fld public final static com.sun.source.tree.Tree$Kind
FLOAT_LITERAL
fld public final static com.sun.source.tree.Tree$Kind FOR_LOOP
fld public final static com.sun.source.tree.Tree$Kind GREATER_THAN
fld public final static com.sun.source.tree.Tree$Kind GREATER_THAN_EQUAL
-fld public final static com.sun.source.tree.Tree$Kind GUARDED_PATTERN
fld public final static com.sun.source.tree.Tree$Kind IDENTIFIER
fld public final static com.sun.source.tree.Tree$Kind IF
fld public final static com.sun.source.tree.Tree$Kind IMPORT
@@ -723,6 +732,7 @@ fld public final static com.sun.source.tree.Tree$Kind
PACKAGE
fld public final static com.sun.source.tree.Tree$Kind PARAMETERIZED_TYPE
fld public final static com.sun.source.tree.Tree$Kind PARENTHESIZED
fld public final static com.sun.source.tree.Tree$Kind PARENTHESIZED_PATTERN
+fld public final static com.sun.source.tree.Tree$Kind PATTERN_CASE_LABEL
fld public final static com.sun.source.tree.Tree$Kind PLUS
fld public final static com.sun.source.tree.Tree$Kind PLUS_ASSIGNMENT
fld public final static com.sun.source.tree.Tree$Kind POSTFIX_DECREMENT
@@ -783,7 +793,9 @@ meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitClass(com.sun.sour
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitCompilationUnit(com.sun.source.tree.CompilationUnitTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitCompoundAssignment(com.sun.source.tree.CompoundAssignmentTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitConditionalExpression(com.sun.source.tree.ConditionalExpressionTree,{com.sun.source.tree.TreeVisitor%1})
+meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitConstantCaseLabel(com.sun.source.tree.ConstantCaseLabelTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitContinue(com.sun.source.tree.ContinueTree,{com.sun.source.tree.TreeVisitor%1})
+meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitDeconstructionPattern(com.sun.source.tree.DeconstructionPatternTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitDefaultCaseLabel(com.sun.source.tree.DefaultCaseLabelTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitDoWhileLoop(com.sun.source.tree.DoWhileLoopTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitEmptyStatement(com.sun.source.tree.EmptyStatementTree,{com.sun.source.tree.TreeVisitor%1})
@@ -792,7 +804,6 @@ meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitErroneous(com.sun.
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitExports(com.sun.source.tree.ExportsTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitExpressionStatement(com.sun.source.tree.ExpressionStatementTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitForLoop(com.sun.source.tree.ForLoopTree,{com.sun.source.tree.TreeVisitor%1})
-meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitGuardedPattern(com.sun.source.tree.GuardedPatternTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitIdentifier(com.sun.source.tree.IdentifierTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitIf(com.sun.source.tree.IfTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitImport(com.sun.source.tree.ImportTree,{com.sun.source.tree.TreeVisitor%1})
@@ -815,6 +826,7 @@ meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitPackage(com.sun.so
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitParameterizedType(com.sun.source.tree.ParameterizedTypeTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitParenthesized(com.sun.source.tree.ParenthesizedTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitParenthesizedPattern(com.sun.source.tree.ParenthesizedPatternTree,{com.sun.source.tree.TreeVisitor%1})
+meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitPatternCaseLabel(com.sun.source.tree.PatternCaseLabelTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitPrimitiveType(com.sun.source.tree.PrimitiveTypeTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitProvides(com.sun.source.tree.ProvidesTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitRequires(com.sun.source.tree.RequiresTree,{com.sun.source.tree.TreeVisitor%1})
@@ -1117,7 +1129,9 @@ meth public {com.sun.source.util.SimpleTreeVisitor%0}
visitClass(com.sun.source.
meth public {com.sun.source.util.SimpleTreeVisitor%0}
visitCompilationUnit(com.sun.source.tree.CompilationUnitTree,{com.sun.source.util.SimpleTreeVisitor%1})
meth public {com.sun.source.util.SimpleTreeVisitor%0}
visitCompoundAssignment(com.sun.source.tree.CompoundAssignmentTree,{com.sun.source.util.SimpleTreeVisitor%1})
meth public {com.sun.source.util.SimpleTreeVisitor%0}
visitConditionalExpression(com.sun.source.tree.ConditionalExpressionTree,{com.sun.source.util.SimpleTreeVisitor%1})
+meth public {com.sun.source.util.SimpleTreeVisitor%0}
visitConstantCaseLabel(com.sun.source.tree.ConstantCaseLabelTree,{com.sun.source.util.SimpleTreeVisitor%1})
meth public {com.sun.source.util.SimpleTreeVisitor%0}
visitContinue(com.sun.source.tree.ContinueTree,{com.sun.source.util.SimpleTreeVisitor%1})
+meth public {com.sun.source.util.SimpleTreeVisitor%0}
visitDeconstructionPattern(com.sun.source.tree.DeconstructionPatternTree,{com.sun.source.util.SimpleTreeVisitor%1})
meth public {com.sun.source.util.SimpleTreeVisitor%0}
visitDefaultCaseLabel(com.sun.source.tree.DefaultCaseLabelTree,{com.sun.source.util.SimpleTreeVisitor%1})
meth public {com.sun.source.util.SimpleTreeVisitor%0}
visitDoWhileLoop(com.sun.source.tree.DoWhileLoopTree,{com.sun.source.util.SimpleTreeVisitor%1})
meth public {com.sun.source.util.SimpleTreeVisitor%0}
visitEmptyStatement(com.sun.source.tree.EmptyStatementTree,{com.sun.source.util.SimpleTreeVisitor%1})
@@ -1126,7 +1140,6 @@ meth public {com.sun.source.util.SimpleTreeVisitor%0}
visitErroneous(com.sun.sou
meth public {com.sun.source.util.SimpleTreeVisitor%0}
visitExports(com.sun.source.tree.ExportsTree,{com.sun.source.util.SimpleTreeVisitor%1})
meth public {com.sun.source.util.SimpleTreeVisitor%0}
visitExpressionStatement(com.sun.source.tree.ExpressionStatementTree,{com.sun.source.util.SimpleTreeVisitor%1})
meth public {com.sun.source.util.SimpleTreeVisitor%0}
visitForLoop(com.sun.source.tree.ForLoopTree,{com.sun.source.util.SimpleTreeVisitor%1})
-meth public {com.sun.source.util.SimpleTreeVisitor%0}
visitGuardedPattern(com.sun.source.tree.GuardedPatternTree,{com.sun.source.util.SimpleTreeVisitor%1})
meth public {com.sun.source.util.SimpleTreeVisitor%0}
visitIdentifier(com.sun.source.tree.IdentifierTree,{com.sun.source.util.SimpleTreeVisitor%1})
meth public {com.sun.source.util.SimpleTreeVisitor%0}
visitIf(com.sun.source.tree.IfTree,{com.sun.source.util.SimpleTreeVisitor%1})
meth public {com.sun.source.util.SimpleTreeVisitor%0}
visitImport(com.sun.source.tree.ImportTree,{com.sun.source.util.SimpleTreeVisitor%1})
@@ -1149,6 +1162,7 @@ meth public {com.sun.source.util.SimpleTreeVisitor%0}
visitPackage(com.sun.sourc
meth public {com.sun.source.util.SimpleTreeVisitor%0}
visitParameterizedType(com.sun.source.tree.ParameterizedTypeTree,{com.sun.source.util.SimpleTreeVisitor%1})
meth public {com.sun.source.util.SimpleTreeVisitor%0}
visitParenthesized(com.sun.source.tree.ParenthesizedTree,{com.sun.source.util.SimpleTreeVisitor%1})
meth public {com.sun.source.util.SimpleTreeVisitor%0}
visitParenthesizedPattern(com.sun.source.tree.ParenthesizedPatternTree,{com.sun.source.util.SimpleTreeVisitor%1})
+meth public {com.sun.source.util.SimpleTreeVisitor%0}
visitPatternCaseLabel(com.sun.source.tree.PatternCaseLabelTree,{com.sun.source.util.SimpleTreeVisitor%1})
meth public {com.sun.source.util.SimpleTreeVisitor%0}
visitPrimitiveType(com.sun.source.tree.PrimitiveTypeTree,{com.sun.source.util.SimpleTreeVisitor%1})
meth public {com.sun.source.util.SimpleTreeVisitor%0}
visitProvides(com.sun.source.tree.ProvidesTree,{com.sun.source.util.SimpleTreeVisitor%1})
meth public {com.sun.source.util.SimpleTreeVisitor%0}
visitRequires(com.sun.source.tree.RequiresTree,{com.sun.source.util.SimpleTreeVisitor%1})
@@ -1247,7 +1261,9 @@ meth public {com.sun.source.util.TreeScanner%0}
visitClass(com.sun.source.tree.C
meth public {com.sun.source.util.TreeScanner%0}
visitCompilationUnit(com.sun.source.tree.CompilationUnitTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitCompoundAssignment(com.sun.source.tree.CompoundAssignmentTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitConditionalExpression(com.sun.source.tree.ConditionalExpressionTree,{com.sun.source.util.TreeScanner%1})
+meth public {com.sun.source.util.TreeScanner%0}
visitConstantCaseLabel(com.sun.source.tree.ConstantCaseLabelTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitContinue(com.sun.source.tree.ContinueTree,{com.sun.source.util.TreeScanner%1})
+meth public {com.sun.source.util.TreeScanner%0}
visitDeconstructionPattern(com.sun.source.tree.DeconstructionPatternTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitDefaultCaseLabel(com.sun.source.tree.DefaultCaseLabelTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitDoWhileLoop(com.sun.source.tree.DoWhileLoopTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitEmptyStatement(com.sun.source.tree.EmptyStatementTree,{com.sun.source.util.TreeScanner%1})
@@ -1256,7 +1272,6 @@ meth public {com.sun.source.util.TreeScanner%0}
visitErroneous(com.sun.source.tr
meth public {com.sun.source.util.TreeScanner%0}
visitExports(com.sun.source.tree.ExportsTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitExpressionStatement(com.sun.source.tree.ExpressionStatementTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitForLoop(com.sun.source.tree.ForLoopTree,{com.sun.source.util.TreeScanner%1})
-meth public {com.sun.source.util.TreeScanner%0}
visitGuardedPattern(com.sun.source.tree.GuardedPatternTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitIdentifier(com.sun.source.tree.IdentifierTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitIf(com.sun.source.tree.IfTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitImport(com.sun.source.tree.ImportTree,{com.sun.source.util.TreeScanner%1})
@@ -1279,6 +1294,7 @@ meth public {com.sun.source.util.TreeScanner%0}
visitPackage(com.sun.source.tree
meth public {com.sun.source.util.TreeScanner%0}
visitParameterizedType(com.sun.source.tree.ParameterizedTypeTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitParenthesized(com.sun.source.tree.ParenthesizedTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitParenthesizedPattern(com.sun.source.tree.ParenthesizedPatternTree,{com.sun.source.util.TreeScanner%1})
+meth public {com.sun.source.util.TreeScanner%0}
visitPatternCaseLabel(com.sun.source.tree.PatternCaseLabelTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitPrimitiveType(com.sun.source.tree.PrimitiveTypeTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitProvides(com.sun.source.tree.ProvidesTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitRequires(com.sun.source.tree.RequiresTree,{com.sun.source.util.TreeScanner%1})
@@ -1584,6 +1600,7 @@ fld public final static javax.lang.model.SourceVersion
RELEASE_15
fld public final static javax.lang.model.SourceVersion RELEASE_16
fld public final static javax.lang.model.SourceVersion RELEASE_17
fld public final static javax.lang.model.SourceVersion RELEASE_18
+fld public final static javax.lang.model.SourceVersion RELEASE_19
fld public final static javax.lang.model.SourceVersion RELEASE_2
fld public final static javax.lang.model.SourceVersion RELEASE_3
fld public final static javax.lang.model.SourceVersion RELEASE_4
@@ -1676,8 +1693,12 @@ fld public final static
javax.lang.model.element.ElementKind RESOURCE_VARIABLE
fld public final static javax.lang.model.element.ElementKind STATIC_INIT
fld public final static javax.lang.model.element.ElementKind TYPE_PARAMETER
meth public boolean isClass()
+meth public boolean isDeclaredType()
+meth public boolean isExecutable()
meth public boolean isField()
+meth public boolean isInitializer()
meth public boolean isInterface()
+meth public boolean isVariable()
meth public static javax.lang.model.element.ElementKind
valueOf(java.lang.String)
meth public static javax.lang.model.element.ElementKind[] values()
supr java.lang.Enum<javax.lang.model.element.ElementKind>
@@ -2024,7 +2045,7 @@ meth public abstract javax.lang.model.type.TypeMirror
getExtendsBound()
meth public abstract javax.lang.model.type.TypeMirror getSuperBound()
CLSS public abstract javax.lang.model.util.AbstractAnnotationValueVisitor14<%0
extends java.lang.Object, %1 extends java.lang.Object>
- anno 0
javax.annotation.processing.SupportedSourceVersion(javax.lang.model.SourceVersion
value=RELEASE_18)
+ anno 0
javax.annotation.processing.SupportedSourceVersion(javax.lang.model.SourceVersion
value=RELEASE_19)
cons protected init()
supr
javax.lang.model.util.AbstractAnnotationValueVisitor9<{javax.lang.model.util.AbstractAnnotationValueVisitor14%0},{javax.lang.model.util.AbstractAnnotationValueVisitor14%1}>
@@ -2055,7 +2076,7 @@ cons protected init()
supr
javax.lang.model.util.AbstractAnnotationValueVisitor8<{javax.lang.model.util.AbstractAnnotationValueVisitor9%0},{javax.lang.model.util.AbstractAnnotationValueVisitor9%1}>
CLSS public abstract javax.lang.model.util.AbstractElementVisitor14<%0 extends
java.lang.Object, %1 extends java.lang.Object>
- anno 0
javax.annotation.processing.SupportedSourceVersion(javax.lang.model.SourceVersion
value=RELEASE_18)
+ anno 0
javax.annotation.processing.SupportedSourceVersion(javax.lang.model.SourceVersion
value=RELEASE_19)
cons protected init()
meth public abstract {javax.lang.model.util.AbstractElementVisitor14%0}
visitRecordComponent(javax.lang.model.element.RecordComponentElement,{javax.lang.model.util.AbstractElementVisitor14%1})
supr
javax.lang.model.util.AbstractElementVisitor9<{javax.lang.model.util.AbstractElementVisitor14%0},{javax.lang.model.util.AbstractElementVisitor14%1}>
@@ -2090,7 +2111,7 @@ meth public abstract
{javax.lang.model.util.AbstractElementVisitor9%0} visitModu
supr
javax.lang.model.util.AbstractElementVisitor8<{javax.lang.model.util.AbstractElementVisitor9%0},{javax.lang.model.util.AbstractElementVisitor9%1}>
CLSS public abstract javax.lang.model.util.AbstractTypeVisitor14<%0 extends
java.lang.Object, %1 extends java.lang.Object>
- anno 0
javax.annotation.processing.SupportedSourceVersion(javax.lang.model.SourceVersion
value=RELEASE_18)
+ anno 0
javax.annotation.processing.SupportedSourceVersion(javax.lang.model.SourceVersion
value=RELEASE_19)
cons protected init()
supr
javax.lang.model.util.AbstractTypeVisitor9<{javax.lang.model.util.AbstractTypeVisitor14%0},{javax.lang.model.util.AbstractTypeVisitor14%1}>
@@ -2148,7 +2169,7 @@ supr java.lang.Object
hfds
CONSTRUCTOR_KIND,FIELD_KINDS,METHOD_KIND,MODULE_KIND,PACKAGE_KIND,RECORD_COMPONENT_KIND,TYPE_KINDS
CLSS public javax.lang.model.util.ElementKindVisitor14<%0 extends
java.lang.Object, %1 extends java.lang.Object>
- anno 0
javax.annotation.processing.SupportedSourceVersion(javax.lang.model.SourceVersion
value=RELEASE_18)
+ anno 0
javax.annotation.processing.SupportedSourceVersion(javax.lang.model.SourceVersion
value=RELEASE_19)
cons protected init()
cons protected init({javax.lang.model.util.ElementKindVisitor14%0})
meth public {javax.lang.model.util.ElementKindVisitor14%0}
visitRecordComponent(javax.lang.model.element.RecordComponentElement,{javax.lang.model.util.ElementKindVisitor14%1})
@@ -2208,7 +2229,7 @@ meth public {javax.lang.model.util.ElementKindVisitor9%0}
visitModule(javax.lang
supr
javax.lang.model.util.ElementKindVisitor8<{javax.lang.model.util.ElementKindVisitor9%0},{javax.lang.model.util.ElementKindVisitor9%1}>
CLSS public javax.lang.model.util.ElementScanner14<%0 extends
java.lang.Object, %1 extends java.lang.Object>
- anno 0
javax.annotation.processing.SupportedSourceVersion(javax.lang.model.SourceVersion
value=RELEASE_18)
+ anno 0
javax.annotation.processing.SupportedSourceVersion(javax.lang.model.SourceVersion
value=RELEASE_19)
cons protected init()
cons protected init({javax.lang.model.util.ElementScanner14%0})
meth public {javax.lang.model.util.ElementScanner14%0}
visitExecutable(javax.lang.model.element.ExecutableElement,{javax.lang.model.util.ElementScanner14%1})
@@ -2299,7 +2320,7 @@ meth public static
javax.lang.model.util.Elements$Origin[] values()
supr java.lang.Enum<javax.lang.model.util.Elements$Origin>
CLSS public javax.lang.model.util.SimpleAnnotationValueVisitor14<%0 extends
java.lang.Object, %1 extends java.lang.Object>
- anno 0
javax.annotation.processing.SupportedSourceVersion(javax.lang.model.SourceVersion
value=RELEASE_18)
+ anno 0
javax.annotation.processing.SupportedSourceVersion(javax.lang.model.SourceVersion
value=RELEASE_19)
cons protected init()
cons protected init({javax.lang.model.util.SimpleAnnotationValueVisitor14%0})
supr
javax.lang.model.util.SimpleAnnotationValueVisitor9<{javax.lang.model.util.SimpleAnnotationValueVisitor14%0},{javax.lang.model.util.SimpleAnnotationValueVisitor14%1}>
@@ -2348,7 +2369,7 @@ cons protected
init({javax.lang.model.util.SimpleAnnotationValueVisitor9%0})
supr
javax.lang.model.util.SimpleAnnotationValueVisitor8<{javax.lang.model.util.SimpleAnnotationValueVisitor9%0},{javax.lang.model.util.SimpleAnnotationValueVisitor9%1}>
CLSS public javax.lang.model.util.SimpleElementVisitor14<%0 extends
java.lang.Object, %1 extends java.lang.Object>
- anno 0
javax.annotation.processing.SupportedSourceVersion(javax.lang.model.SourceVersion
value=RELEASE_18)
+ anno 0
javax.annotation.processing.SupportedSourceVersion(javax.lang.model.SourceVersion
value=RELEASE_19)
cons protected init()
cons protected init({javax.lang.model.util.SimpleElementVisitor14%0})
meth public {javax.lang.model.util.SimpleElementVisitor14%0}
visitRecordComponent(javax.lang.model.element.RecordComponentElement,{javax.lang.model.util.SimpleElementVisitor14%1})
@@ -2392,7 +2413,7 @@ meth public
{javax.lang.model.util.SimpleElementVisitor9%0} visitModule(javax.la
supr
javax.lang.model.util.SimpleElementVisitor8<{javax.lang.model.util.SimpleElementVisitor9%0},{javax.lang.model.util.SimpleElementVisitor9%1}>
CLSS public javax.lang.model.util.SimpleTypeVisitor14<%0 extends
java.lang.Object, %1 extends java.lang.Object>
- anno 0
javax.annotation.processing.SupportedSourceVersion(javax.lang.model.SourceVersion
value=RELEASE_18)
+ anno 0
javax.annotation.processing.SupportedSourceVersion(javax.lang.model.SourceVersion
value=RELEASE_19)
cons protected init()
cons protected init({javax.lang.model.util.SimpleTypeVisitor14%0})
supr
javax.lang.model.util.SimpleTypeVisitor9<{javax.lang.model.util.SimpleTypeVisitor14%0},{javax.lang.model.util.SimpleTypeVisitor14%1}>
@@ -2439,7 +2460,7 @@ cons protected
init({javax.lang.model.util.SimpleTypeVisitor9%0})
supr
javax.lang.model.util.SimpleTypeVisitor8<{javax.lang.model.util.SimpleTypeVisitor9%0},{javax.lang.model.util.SimpleTypeVisitor9%1}>
CLSS public javax.lang.model.util.TypeKindVisitor14<%0 extends
java.lang.Object, %1 extends java.lang.Object>
- anno 0
javax.annotation.processing.SupportedSourceVersion(javax.lang.model.SourceVersion
value=RELEASE_18)
+ anno 0
javax.annotation.processing.SupportedSourceVersion(javax.lang.model.SourceVersion
value=RELEASE_19)
cons protected init()
cons protected init({javax.lang.model.util.TypeKindVisitor14%0})
supr
javax.lang.model.util.TypeKindVisitor9<{javax.lang.model.util.TypeKindVisitor14%0},{javax.lang.model.util.TypeKindVisitor14%1}>
diff --git a/java/libs.javacapi/nbproject/project.properties
b/java/libs.javacapi/nbproject/project.properties
index a988ae1bf6..f7f3deb603 100644
--- a/java/libs.javacapi/nbproject/project.properties
+++ b/java/libs.javacapi/nbproject/project.properties
@@ -20,6 +20,6 @@ is.autoload=true
javadoc.title=Javac API
nbm.homepage=http://jackpot.netbeans.org/
nbm.module.author=Petr Hrebejk
-spec.version.base=8.40.0
+spec.version.base=8.41.0
javadoc.arch=${basedir}/arch.xml
module.javadoc.packages=com.sun.source.tree,com.sun.source.util
diff --git a/java/libs.javacapi/nbproject/project.xml
b/java/libs.javacapi/nbproject/project.xml
index 905d81bf35..35901e2eb3 100644
--- a/java/libs.javacapi/nbproject/project.xml
+++ b/java/libs.javacapi/nbproject/project.xml
@@ -40,11 +40,11 @@
</public-packages>
<class-path-extension>
<runtime-relative-path />
-
<binary-origin>external/nb-javac-jdk-18.0.1+10-api.jar</binary-origin>
+
<binary-origin>external/nb-javac-jdk-19+33-api.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path />
-
<binary-origin>external/nb-javac-jdk-18.0.1+10.jar</binary-origin>
+ <binary-origin>external/nb-javac-jdk-19+33.jar</binary-origin>
</class-path-extension>
</data>
</configuration>
diff --git a/java/libs.nbjavacapi/external/binaries-list
b/java/libs.nbjavacapi/external/binaries-list
index cb152e08fa..b42feac2b1 100644
--- a/java/libs.nbjavacapi/external/binaries-list
+++ b/java/libs.nbjavacapi/external/binaries-list
@@ -14,5 +14,5 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-ECA15E615777CE6E7550F71EF312B8CEEBCBE0BD
com.dukescript.nbjavac:nb-javac:jdk-18.0.1+10:api
-3AD512FBC8830D89AC70D0CA59397C4868789DCC
com.dukescript.nbjavac:nb-javac:jdk-18.0.1+10
+DBA592C75DD52B97EC88A6B06ADF71D4F3C3DED9
com.dukescript.nbjavac:nb-javac:jdk-19+33:api
+A36688EDA1DE51508A039AED3518771C6F75E416
com.dukescript.nbjavac:nb-javac:jdk-19+33
diff --git a/java/libs.nbjavacapi/external/nb-javac-jdk-18.0.1+10-license.txt
b/java/libs.nbjavacapi/external/nb-javac-jdk-19+33-license.txt
similarity index 99%
rename from java/libs.nbjavacapi/external/nb-javac-jdk-18.0.1+10-license.txt
rename to java/libs.nbjavacapi/external/nb-javac-jdk-19+33-license.txt
index 6d324e9cf5..770d20b881 100644
--- a/java/libs.nbjavacapi/external/nb-javac-jdk-18.0.1+10-license.txt
+++ b/java/libs.nbjavacapi/external/nb-javac-jdk-19+33-license.txt
@@ -1,10 +1,10 @@
Name: Javac Compiler Implementation
Description: Javac Compiler Implementation
-Files: nb-javac-jdk-18.0.1+10-api.jar nb-javac-jdk-18.0.1+10.jar
-Version: jdk-18.0.1+10
+Files: nb-javac-jdk-19+33-api.jar nb-javac-jdk-19+33.jar
+Version: jdk-19+33
License: GPL-2-CP
-Origin: OpenJDK (https://github.com/openjdk/jdk18)
-Source: https://github.com/openjdk/jdk18
+Origin: OpenJDK (https://github.com/openjdk/jdk19)
+Source: https://github.com/openjdk/jdk19
Type: compile-time,optional
Comment: Used at compile and design time to compile against; optional at
runtime.
diff --git a/java/libs.nbjavacapi/manifest.mf b/java/libs.nbjavacapi/manifest.mf
index 5debd3fc6d..3310a0fddd 100644
--- a/java/libs.nbjavacapi/manifest.mf
+++ b/java/libs.nbjavacapi/manifest.mf
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
AutoUpdate-Show-In-Client: true
OpenIDE-Module: org.netbeans.libs.nbjavacapi
OpenIDE-Module-Localizing-Bundle:
org/netbeans/modules/nbjavac/api/Bundle.properties
-OpenIDE-Module-Specification-Version: 18.2
+OpenIDE-Module-Specification-Version: 19.0
OpenIDE-Module-Hide-Classpath-Packages: com.sun.javadoc.**, com.sun.source.**,
javax.annotation.processing.**, javax.lang.model.**, javax.tools.**,
com.sun.tools.javac.** com.sun.tools.javac.**, com.sun.tools.javadoc.**,
com.sun.tools.javap.**, com.sun.tools.classfile.**, com.sun.tools.doclint.**
OpenIDE-Module-Fragment-Host: org.netbeans.libs.javacapi
OpenIDE-Module-Provides: org.netbeans.libs.nbjavac
diff --git a/java/libs.nbjavacapi/nbproject/project.properties
b/java/libs.nbjavacapi/nbproject/project.properties
index 1bd61ee27f..f48dd15bac 100644
--- a/java/libs.nbjavacapi/nbproject/project.properties
+++ b/java/libs.nbjavacapi/nbproject/project.properties
@@ -18,5 +18,5 @@
javac.source=1.7
javac.compilerargs=-Xlint -Xlint:-serial
license.file.override=${nb_all}/nbbuild/licenses/GPL-2-CP
-release.external/nb-javac-jdk-18.0.1+10-api.jar=modules/ext/nb-javac-jdk-18-api.jar
-release.external/nb-javac-jdk-18.0.1+10.jar=modules/ext/nb-javac-jdk-18.jar
+release.external/nb-javac-jdk-19+33-api.jar=modules/ext/nb-javac-jdk-19-api.jar
+release.external/nb-javac-jdk-19+33.jar=modules/ext/nb-javac-jdk-19.jar
diff --git a/java/libs.nbjavacapi/nbproject/project.xml
b/java/libs.nbjavacapi/nbproject/project.xml
index 7dc8a083b2..5b801b83fb 100644
--- a/java/libs.nbjavacapi/nbproject/project.xml
+++ b/java/libs.nbjavacapi/nbproject/project.xml
@@ -36,12 +36,12 @@
</module-dependencies>
<public-packages/>
<class-path-extension>
-
<runtime-relative-path>ext/nb-javac-jdk-18-api.jar</runtime-relative-path>
-
<binary-origin>external/nb-javac-jdk-18.0.1+10-api.jar</binary-origin>
+
<runtime-relative-path>ext/nb-javac-jdk-19-api.jar</runtime-relative-path>
+
<binary-origin>external/nb-javac-jdk-19+33-api.jar</binary-origin>
</class-path-extension>
<class-path-extension>
-
<runtime-relative-path>ext/nb-javac-jdk-18.jar</runtime-relative-path>
-
<binary-origin>external/nb-javac-jdk-18.0.1+10.jar</binary-origin>
+
<runtime-relative-path>ext/nb-javac-jdk-19.jar</runtime-relative-path>
+ <binary-origin>external/nb-javac-jdk-19+33.jar</binary-origin>
</class-path-extension>
</data>
</configuration>
diff --git
a/java/libs.nbjavacapi/src/org/netbeans/modules/nbjavac/api/Bundle.properties
b/java/libs.nbjavacapi/src/org/netbeans/modules/nbjavac/api/Bundle.properties
index c5c441aaf1..e9a4b6bdf4 100644
---
a/java/libs.nbjavacapi/src/org/netbeans/modules/nbjavac/api/Bundle.properties
+++
b/java/libs.nbjavacapi/src/org/netbeans/modules/nbjavac/api/Bundle.properties
@@ -18,6 +18,6 @@
OpenIDE-Module-Display-Category=Java
OpenIDE-Module-Long-Description=\
This library provides a Java language parser for the IDE. \
- Supports JDK-18 features.
+ Supports JDK-19 features.
OpenIDE-Module-Name=The nb-javac Java editing support library
OpenIDE-Module-Short-Description=The nb-javac Java editing support library
diff --git
a/java/refactoring.java/nbproject/org-netbeans-modules-refactoring-java.sig
b/java/refactoring.java/nbproject/org-netbeans-modules-refactoring-java.sig
index bc7ee9eade..26adf5aa7f 100644
--- a/java/refactoring.java/nbproject/org-netbeans-modules-refactoring-java.sig
+++ b/java/refactoring.java/nbproject/org-netbeans-modules-refactoring-java.sig
@@ -66,7 +66,6 @@ meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitErroneous(com.sun.
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitExports(com.sun.source.tree.ExportsTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitExpressionStatement(com.sun.source.tree.ExpressionStatementTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitForLoop(com.sun.source.tree.ForLoopTree,{com.sun.source.tree.TreeVisitor%1})
-meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitGuardedPattern(com.sun.source.tree.GuardedPatternTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitIdentifier(com.sun.source.tree.IdentifierTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitIf(com.sun.source.tree.IfTree,{com.sun.source.tree.TreeVisitor%1})
meth public abstract {com.sun.source.tree.TreeVisitor%0}
visitImport(com.sun.source.tree.ImportTree,{com.sun.source.tree.TreeVisitor%1})
@@ -147,7 +146,6 @@ meth public {com.sun.source.util.TreeScanner%0}
visitErroneous(com.sun.source.tr
meth public {com.sun.source.util.TreeScanner%0}
visitExports(com.sun.source.tree.ExportsTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitExpressionStatement(com.sun.source.tree.ExpressionStatementTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitForLoop(com.sun.source.tree.ForLoopTree,{com.sun.source.util.TreeScanner%1})
-meth public {com.sun.source.util.TreeScanner%0}
visitGuardedPattern(com.sun.source.tree.GuardedPatternTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitIdentifier(com.sun.source.tree.IdentifierTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitIf(com.sun.source.tree.IfTree,{com.sun.source.util.TreeScanner%1})
meth public {com.sun.source.util.TreeScanner%0}
visitImport(com.sun.source.tree.ImportTree,{com.sun.source.util.TreeScanner%1})
diff --git a/java/refactoring.java/nbproject/project.properties
b/java/refactoring.java/nbproject/project.properties
index bc377cf795..e21b31afd2 100644
--- a/java/refactoring.java/nbproject/project.properties
+++ b/java/refactoring.java/nbproject/project.properties
@@ -18,7 +18,7 @@ javac.source=1.8
javadoc.arch=${basedir}/arch.xml
javadoc.apichanges=${basedir}/apichanges.xml
-spec.version.base=1.79.0
+spec.version.base=1.80.0
#test configs
test.config.find.includes=\
**/FindUsagesSuite.class
diff --git
a/java/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/Utilities.java
b/java/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/Utilities.java
index dab12e1323..b0accad67d 100644
---
a/java/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/Utilities.java
+++
b/java/spi.java.hints/src/org/netbeans/modules/java/hints/spiimpl/Utilities.java
@@ -74,6 +74,7 @@ import com.sun.tools.javac.tree.JCTree;
import com.sun.tools.javac.tree.JCTree.JCCase;
import com.sun.tools.javac.tree.JCTree.JCCatch;
import com.sun.tools.javac.tree.JCTree.JCCompilationUnit;
+import com.sun.tools.javac.tree.JCTree.JCConstantCaseLabel;
import com.sun.tools.javac.tree.JCTree.JCExpression;
import com.sun.tools.javac.tree.JCTree.JCFieldAccess;
import com.sun.tools.javac.tree.JCTree.JCIdent;
@@ -1444,9 +1445,9 @@ public class Utilities {
}
JCIdent identTree = F.at(pos).Ident(name);
-
+ JCConstantCaseLabel labelTree =
F.at(pos).ConstantCaseLabel(identTree);
return com.sun.tools.javac.util.List.of(
- new JackpotTrees.CaseWildcard(name, identTree,
STATEMENT, com.sun.tools.javac.util.List.of(identTree),
com.sun.tools.javac.util.List.nil(), null)
+ new JackpotTrees.CaseWildcard(name, identTree,
STATEMENT, com.sun.tools.javac.util.List.of(labelTree),
com.sun.tools.javac.util.List.nil(), null)
);
}
}
diff --git a/nbbuild/antsrc/org/netbeans/nbbuild/extlibs/ignored-overlaps
b/nbbuild/antsrc/org/netbeans/nbbuild/extlibs/ignored-overlaps
index 9553042e08..07ff8afd0e 100644
--- a/nbbuild/antsrc/org/netbeans/nbbuild/extlibs/ignored-overlaps
+++ b/nbbuild/antsrc/org/netbeans/nbbuild/extlibs/ignored-overlaps
@@ -118,8 +118,8 @@ webcommon/javascript2.jsdoc/external/testfiles-jsdoc-1.zip
webcommon/javascript2
harness/apisupport.harness/external/launcher-12.5-distribution.zip
platform/o.n.bootstrap/external/launcher-12.5-distribution.zip
# only one is part of the product:
-java/libs.javacapi/external/nb-javac-jdk-18.0.1+10-api.jar
java/libs.nbjavacapi/external/nb-javac-jdk-18.0.1+10-api.jar
-java/libs.javacapi/external/nb-javac-jdk-18.0.1+10.jar
java/libs.nbjavacapi/external/nb-javac-jdk-18.0.1+10.jar
+java/libs.javacapi/external/nb-javac-jdk-19+33-api.jar
java/libs.nbjavacapi/external/nb-javac-jdk-19+33-api.jar
+java/libs.javacapi/external/nb-javac-jdk-19+33.jar
java/libs.nbjavacapi/external/nb-javac-jdk-19+33.jar
# Maven and Gradle are self-contained distributions - ignoring overlaps
platform/o.apache.commons.lang3/external/commons-lang3-3.8.1.jar
java/maven.embedder/external/apache-maven-3.8.6-bin.zip
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists