diff --git a/dev/build.xml b/dev/build.xml
index 37ffb3ee57..1ee4cc6db3 100755
--- a/dev/build.xml
+++ b/dev/build.xml
@@ -77,11 +77,11 @@
-
-
-
-
-
+
+
+
+
+
@@ -133,16 +133,16 @@
-
-
-
+
+
+
+ src="${gwt.tools.lib}/eclipse/org.eclipse.jdt.core_3.32.0.v20221108-1853.jar"/>
+ src="${gwt.tools.lib}/eclipse/jdtCompilerAdapter_3.32.0.v20221108-1853.jar"/>
-
-
-
+
+
+
+ location="${gwt.tools.lib}/eclipse/org.eclipse.jdt.core_3.32.0.v20221108-1853.jar"/>
+ location="${gwt.tools.lib}/eclipse/jdtCompilerAdapter_3.32.0.v20221108-1853.jar"/>
diff --git a/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java b/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java
index c0e5748c23..c63a0132b7 100644
--- a/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java
+++ b/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java
@@ -787,7 +787,8 @@ private static void resolveRecursive(ReferenceBinding outerType) {
SourceLevel.JAVA8, ClassFileConstants.JDK1_8,
SourceLevel.JAVA9, ClassFileConstants.JDK9,
SourceLevel.JAVA10, ClassFileConstants.JDK10,
- SourceLevel.JAVA11, ClassFileConstants.JDK11);
+ SourceLevel.JAVA11, ClassFileConstants.JDK11,
+ SourceLevel.JAVA17, ClassFileConstants.JDK17);
public JdtCompiler(CompilerContext compilerContext, UnitProcessor processor) {
this.compilerContext = compilerContext;
diff --git a/dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java b/dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java
index 58334327c2..b25000f409 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java
@@ -537,13 +537,20 @@ public void endVisit(BreakStatement x, BlockScope scope) {
@Override
public void endVisit(CaseStatement x, BlockScope scope) {
+ assert x.isExpr == false : "Switch expressions not yet supported";
try {
SourceInfo info = makeSourceInfo(x);
- JExpression caseExpression = pop(x.constantExpression);
- if (caseExpression != null && x.constantExpression.resolvedType.isEnum()) {
- caseExpression = synthesizeCallToOrdinal(scope, info, caseExpression);
+ if (x.constantExpressions == null) {
+ push(new JCaseStatement(info, null));
+ } else {
+ for (Expression constantExpression : x.constantExpressions) {
+ JExpression caseExpression = pop(constantExpression);
+ if (caseExpression != null && caseExpression.getType().isEnumOrSubclass() != null) {
+ caseExpression = synthesizeCallToOrdinal(scope, info, caseExpression);
+ }
+ push(new JCaseStatement(info, caseExpression));
+ }
}
- push(new JCaseStatement(info, caseExpression));
} catch (Throwable e) {
throw translateException(x, e);
}
diff --git a/dev/core/src/com/google/gwt/dev/util/arg/SourceLevel.java b/dev/core/src/com/google/gwt/dev/util/arg/SourceLevel.java
index d07680b3e1..821628fc86 100644
--- a/dev/core/src/com/google/gwt/dev/util/arg/SourceLevel.java
+++ b/dev/core/src/com/google/gwt/dev/util/arg/SourceLevel.java
@@ -26,7 +26,8 @@ public enum SourceLevel {
JAVA8("1.8", "8"),
JAVA9("9", "1.9"),
JAVA10("10", "1.10"),
- JAVA11("11", "1.11");
+ JAVA11("11", "1.11"),
+ JAVA17("17", "1.17");
/**
* The default java sourceLevel.
diff --git a/maven/google-poms/gwt/pom-template.xml b/maven/google-poms/gwt/pom-template.xml
index dc7f26bd3d..777f51ed37 100644
--- a/maven/google-poms/gwt/pom-template.xml
+++ b/maven/google-poms/gwt/pom-template.xml
@@ -22,7 +22,7 @@
9.4.44.v20210927
- 9.2
+ 9.6
diff --git a/maven/poms/gwt/pom-template.xml b/maven/poms/gwt/pom-template.xml
index 0f288bae1e..0825e6cf47 100644
--- a/maven/poms/gwt/pom-template.xml
+++ b/maven/poms/gwt/pom-template.xml
@@ -22,7 +22,7 @@
9.4.44.v20210927
- 9.2
+ 9.6
diff --git a/user/build.xml b/user/build.xml
index 1f43783a4c..74ed1d447c 100755
--- a/user/build.xml
+++ b/user/build.xml
@@ -73,8 +73,8 @@
-
-
+
+